在前面搭建伪分布式hadoop运行环境的基础上,搭建hadoop集群,配置如下:
机器名 | 机器ip | 用途 |
hadoop0(主节点) | 192.168.255.128 | NameNode//JobTracker |
hadoop1(从节点) | 192.168.255.130 | DataNode/JobTracker/SeconderyNameNode |
hadoop2(从节点) | 192.168.255.131 | DataNode/JobTracker |
1、拷贝虚拟机:
将前面的伪分布的虚拟机拷贝三份;
2、修改网络配置:
(1)分别修改每台机器的 /etc/sysconfig/network 文件,机器名分别改为hadoop0,hadoop1,hadoop2;
(2)修改每台机器的 /etc/hosts 文件,填写如下内容:
(3)检测防火墙是否关闭,命令:service iptables status
(4)分别修改每台机器的hadoop配置文件中的core-site.xml和mapred-site.xml文件,确保主节点名正确:
3、设置三台机器之间SSH免密码登录:
(1)分别清除三台机器上面原有的SSH秘钥信息,同时生成新的秘钥,分别在三台机器上执行如下命令:
cd root/.sshrm –rf *ssh-keygen -t dsacat id_dsa.pub >> authorized_keys
(2)此时,三台机器上分别可以免密码登录自己,为了使三台机器可以相互之间免密码登录,先将hadoop0和hadoop1的公钥分别按照到hadoop2上
在hadoop0上执行:ssh-copy-id -i /root/.ssh/id_dsa.pub hadoop2
在hadoop1上执行:ssh-copy-id -i /root/.ssh/id_dsa.pub hadoop2
之后查看hadoop2的authorized_keys文件,里面已有hadoop0和hadoop1的公钥:
(3)将hadoop2上的authorized_keys文件复制到hadoop0和hadoop1中,在hadoop2中执行如下命令:
scp /root/.ssh/authorized_keys hadoop0:/root/.ssh/
scp /root/.ssh/authorized_keys hadoop1:/root/.ssh/
至此,hadoop0、hadoop1、hadoop2可以通过SSH免密码相互登录,测试:在hadoop0上输入ssh hadoop1和ssh hadoop2,另外两台机器测试也是如此;
4、在hadoop0(主节点)点上修改hadoop配置文件:
(1)NameNode在主节点,默认SecondaryNameNode也是在主节点,这里通过修改/usr/local/hadoop/conf/masters文件,将SecondaryNameNode放在hadoop1上,如下图:
(2)修改/usr/local/hadoop/conf/slaves文件,设置从节点,如下图:
5、启动/停止hadoop集群;
(1)因为虚拟机是拷贝自原来的伪分布环境,所以分别删除三台机器的hadoop目录下的logs和tmp目录;
(2)在hadoop0上格式化nameNode,命令:hadoop namenode –format;
(3)启动,在hadoop0上start-all.sh;
(4)终止服务命令,在hadoop0上stop-all.sh;
6、启动之后验证相应服务:
hadoop0上:
hadoop1上
hadoop2上:
至此,说明hadoop集群环境安装及配置成功。
关于前台的处理调用,都没有发生变化。
来自为知笔记(Wiz)