本文转自我的ChinaUnix博客:http://blog.chinaunix.net/u3/107162/showart_2201271.html
几天在单机环境下搭好了Hadoop,这两天开始着手搭建集群环境。使用设备是我自己在实验室的一台PC机和实验室的两台服务器,PC作为Namenode节点,同时运行一个Namenode和一个Datanode,两台服务器作为slave,各自作为一个Datanode,这样就一共有3个Datanode节点。IP地址分配为:
master:192.168.5.236,Ubuntu9.10,运行Namenode,SecondaryNamenode,Datanode,JobTracker,TaskTracker
slave1:192.168.5.201,Debian4.0,运行Datanode,TaskTracker
slave2:192.168.5.202,Debian4.0,运行Datanode,TaskTracker
1.首先是配置java环境,这个略去~~~~
2.把PC上已有的hadoop程序文件夹拷贝到两个datanode的相同目录下,注意一定是相同目录,而且登录这3台机器的用户名必须相同。
3.修改三台机器的/etc/hosts,
# /etc/hosts (for master AND slave)
192.168.5.236 master
192.168.5.201 slave1
192.168.5.236 master
192.168.5.201 slave1
192.168.5.202 slave2
4.设置namenode以ssh免密码方式连接datanode
a)先在PC上设置ssh免密码登录:
b)然后,再把master的
$HOME/.ssh/id_rsa.pub文件拷贝到slave1和slave2的
$HOME/.ssh/下。
5.修改master节点的配置文件
a)修改
<HADOOP_INSTALL>/conf/masters如下:
master
b)修改 <HADOOP_INSTALL>/conf/slaves如下:
master
slave1
slave2
6.在所有节点上修改配置文件
a)修改conf/hadoop-env.sh,添加java_home的路径
export JAVA_HOME=/usr/lib/.........
b)修改conf/core-site.xml,加入
<property>
<name> fs.default.name </name>
<value> hdfs://master:54310 </value>
</property>
<name> fs.default.name </name>
<value> hdfs://master:54310 </value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>这里写想存放HDFS文件系统的位置</value>
</property>
<name>hadoop.tmp.dir</name>
<value>这里写想存放HDFS文件系统的位置</value>
</property>
c)修改conf/mapred-site.xml,加入
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>这里写想存放临时文件的位置</value>
</property>
<name>mapred.local.dir</name>
<value>这里写想存放临时文件的位置</value>
</property>
d)修改conf/hdfs-site.xml,加入
<property>
<name>dfs.replication</name>
<value>3</value> 注:这里有3个datanode,所以有三个副本
</property>
<name>dfs.replication</name>
<value>3</value> 注:这里有3个datanode,所以有三个副本
</property>
7.配置完成,在master上格式化Namenode,
$ bin/hadoop namenode -format
8.然后通过bin/start-all.sh启动各节点即可。