第一步,我们进行集群的弹性扩展******:******
我们安装都是单机集群
1-N的集群扩张
扩张之前,需要选择一个已安装hadoop的主机,作为Master
-
已安装hadoop的主机清理,只保留1号机中的hadoop,以这个hadoop为准
-
确认所有主机已安装了jdk
-
确认所有主机之间,彼此ssh免密
-
检查所有主机是否都有公私钥
-
(1):在各自的机器上面生成密钥:
在第1台机器上生产一对钥匙: ssh-keygen (-t rsa)
在第2台机器上生产一对钥匙: ssh-keygen (-t rsa)
在第3台机器上生产一对钥匙: ssh-keygen (-t rsa)
(2):将其它机器的公钥拷贝到第一台机器:
ssh-copy-id 第一台机器(分别在其他机器执行此命令,注意,也在第一台机器上面将公钥拷贝到自己的机器上面)
如ssh-copy-id master,其他在其他机器执行此命令:ssh-copy-id slaver1,ssh-copy-id slaver2,ssh-copy-id slaver3,
(3):将依次从第一台机器将公钥拷贝到其他节点
ssh-copy-id 第2台机器
ssh-copy-id 第3台机器
第三步:将第一台的authorized_keys分别拷贝到其他机器上面:
scp authorized_keys slaver1:/root/.ssh/ scp authorized_keys slaver2:/root/.ssh/ scp authorized_keys slaver3:/root/.ssh/
-
Vi slaves 指定工作
/usr/hadoop/hadoop-2.10.1/etc/hadoop vi slaves
-
将1号主机中的已经配置好的hadoop直接分发给所其它所有主机(免于一台一台机器安装)
分发之前,确认2、3号机是否创建了/usr/hadoop目录
-
开始分发文件:
-
分发完毕后,启动测试
-
集群只需要和master进行交互即可,其它工作机,听从master指挥,不需要你进行干预。
Hadoop在通讯过程中,会将ip转换为域名或主机名,通过主机名与目标主机进行交互,所以要自行解析、映射主机名与IP间的关系

配置/etc/hosts,以保证集群所有主机,可相互解析主机名:

至此就可正常使用啦:

正常启动,无异常
检查各机进程:

各机进程启动正常,各自完成自己的角色工作