我们用2个节点来安装Hadoop 集群,其中192.168.129.35是主节点,而192.168.129.34是从节点。

 

 

在主节点(192.168.129.35)和从节点(192.168.129.34)上都创建一个用户叫hadoop-user

 

主节点(192.168.129.35)以hadoop-user登录

 

因为hadoop集群中需要有个主节点(master node)来承担NameNodeJobTracker守护进程,并且承担连接和激活其他从节点(slave node)DataNode TaskTracker守护进程的责任。而它们的通信在Hadoop中是使用无密码的SSH,所以我们必须配置无密码的SSH

首先验证ssh是否已经安装

which ssh

which sshd

which ssh-keygen

 

主节点(192.168.129.35)上产生SSH密码对

ssh-keygen -t  rsa

在主节点(192.168.129.35)上查看公钥信息:

cat ~/.ssh/id_rsa.pub

 

公钥从主节点(192.168.129.35)复制到每个hadoop节点,因为我们主节点已经有,所以我们把它发布到从节点192.168.129.34

从主节点(192.168.129.35)运行:

scp ~/.ssh/id_rsa.pub hadoop-user@192.168.129.34:~/master_key

在从节点(192.168.129.34)上将这个公钥文件移动到正确的位置:

mkdir ~/.ssh

chmod 700 ~/.ssh

mv ~/master_key ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

 

在主节点(192.168.129.35)上验证无密码的ssh是否可以成功和从节点(192.168.129.34)通信

ssh 192.168.129.34

 

配置Hadoop:

在主节点上配置core-site.xml, mapred-site.xml, hdfs-site.xml

core-site.xml,注意hdfs后面的必须是主节点(192.168.129.35

 

mapred-site.xml ,配置了map reducejob的主机和端口号,所以必须是主节点 (192.168.129.35)

 

 

hdfs-site.xml,可以设置dfs的replication数量

 

配置集群中的主节点和从节点

vi masters

将其改为这个主节点的ip(192.168.129.35)

vi slaves

将其改为从节点的ip列表,因为我们这里只有一个从节点(192.168.129.34),所以我们只有一行。

 

校验主,从节点配置:

cat masters

cat slaves

 

配置Hadoop环境:

vi  hadoop-env.sh

找到并且编辑JAVA_HOME

 

更新环境变量

source hadoop-env.sh

 

把主节点上的所有配置都复制到从节点上:

scp ./hadoop-0.20.2.tar hadoop-user@192.168.129.34:/home/hadoop-user/

scp ./jdk1.6.0_31.tar hadoop-user@192.168.129.34:/home/hadoop-user/

 

启动主,从节点:

 

在每个节点上,分别到$HADOOP_HOME/bin

格式化namenode

./hadoop namenode -format

 

 

启动Hadoop

./start-all.sh &

 

最后用$JAVA_HOME/bin 下的jps命令来检测是否被运行了

 $JAVA_HOME/bin/jps