我们用2个节点来安装Hadoop 集群,其中192.168.129.35是主节点,而192.168.129.34是从节点。
在主节点(192.168.129.35)和从节点(192.168.129.34)上都创建一个用户叫hadoop-user
< !--[endif]-->
主节点(192.168.129.35)以hadoop-user登录
因为hadoop集群中需要有个主节点(master node)来承担NameNode和JobTracker守护进程,并且承担连接和激活其他从节点(slave node)的DataNode和 TaskTracker守护进程的责任。而它们的通信在Hadoop中是使用无密码的SSH,所以我们必须配置无密码的SSH。 首先验证ssh是否已经安装: which ssh which sshd which ssh-keygen
< !--[endif]-->
主节点(192.168.129.35)上产生SSH密码对 ssh-keygen -t rsa
< !--[endif]-->
在主节点(192.168.129.35)上查看公钥信息: cat ~/.ssh/id_rsa.pub
< !--[endif]-->
将公钥从主节点(192.168.129.35)复制到每个hadoop节点,因为我们主节点已经有,所以我们把它发布到从节点192.168.129.34上 从主节点(192.168.129.35)运行:
在从节点(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
< !--[endif]-->
配置Hadoop: 在主节点上配置core-site.xml, mapred-site.xml, hdfs-site.xml core-site.xml,注意hdfs后面的必须是主节点(192.168.129.35)
< !--[endif]-->
mapred-site.xml ,配置了map 和reduce的job的主机和端口号,所以必须是主节点 (192.168.129.35)
< !--[endif]-->
hdfs-site.xml,可以设置dfs的replication数量
< !--[endif]-->
配置集群中的主节点和从节点: vi masters 将其改为这个主节点的ip(192.168.129.35) vi slaves 将其改为从节点的ip列表,因为我们这里只有一个从节点(192.168.129.34),所以我们只有一行。
校验主,从节点配置: cat masters cat slaves
< !--[endif]-->
配置Hadoop环境: vi hadoop-env.sh 找到并且编辑JAVA_HOME
< !--[endif]-->
更新环境变量 source hadoop-env.sh
把主节点上的所有配置都复制到从节点上:
启动主,从节点:
在每个节点上,分别到$HADOOP_HOME/bin中 格式化namenode ./hadoop namenode -format<!--[endif]-->
启动Hadoop ./start-all.sh & <!--[if !vml]--><!--[endif]-->
最后用$JAVA_HOME/bin 下的jps命令来检测是否被运行了
$JAVA_HOME/bin/jps
|