总体来说,所有实体机子(namenode和datanode配置相同)里面的hadoop文件包里有4个文件需要自行修改 ,都是位于conf里面: hadoop-env.sh, core-site.xml, hdfs-site.xml, mapred-site.xml。namenode会比datanode多一个文件需要配置, 会在下列用红字标出
安装hadoop
首先先从官网下载安装包。
找到 hadoop-1.1.1.tar.gz 解压缩到 /opt/目录下 (可以自行根据个人喜好修改路径), 小僧为了方便配置建立了软链接( $ ln -s hadoop-1.1.1 hadoop)
然后将安装路径加入到 /etc/profile 内
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_HOME_WARN_SUPPRESS=1 #1.0版本后响警报,其实这个加不加也没什么所谓#
配置 hadoop-env.sh
export Java_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386
配置slave1 文件 (只在namenode上配置)
slave1
slave2
#只要将机器名或者IP其中一样写入即可#
注意: 小僧在观摩别的安装教程中,发现有很多教程作者在这里多配置了一个conf/masters文件。事实上,能否让机子变成Namenode并非在这里控制;从字面意思来看---master文件的名称确实有点误导人, 其实它的功能是设立另外一个secondary namenode作为辅助。就整个hadoop项目来看,NameNode节点的单点故障问题导致的后果会十分严重和致命,因此secondaryNameNode节点启动之后会不断的对NameNode节点保存的元数据进行备份。下图为SNN的工作时序图:
图片转自linux公社的xhh198781
配置core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://10.117.253.201:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>
TIPS: 这个tmp文件夹是分布式存储的一个临时文件存放的地方,会随着集群启动自动生成,但它也是节点报错的高频率地方,请注意修改好这个文件夹的权限问题。(小僧试过好几次提示权限不足而启动服务失败。)
配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value><SPAN>1</SPAN></value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/opt/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop/hdfs/data</value>
</property>
</configuration>