1. 首先需要克隆一台主机
现在我这里已经有五台虚拟机,要克隆的目标主机为CentOS7-1810_04:
启动集群后webUI如下:
把要克隆的目标虚拟机关机,在VMware上选中目标主机 -> 右键 -> 管理 -> 克隆:
然后下一步,选择克隆自:虚拟机中的当前状态:
继续下一步,克隆方法选择:创建完整克隆:
继续下一步,修改虚拟机名称和位置:
然后选择完成,很快就克隆完了:
可以看到,现在有六台虚拟机了:
2.修改新主机的IP和主机名等信息
执行命令sudo vi /etc/hostname
修改主机名为:s140
执行命令sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改主机IP为:192.168.11.140
然后重启虚拟机
现在就可以用MobaXterm_Personal_11.1连接了。
3. 复制完全分布式文件夹full为高可用文件夹ha
其实这里之所以扩展到六台主机是为了给后边的高可用做铺垫,所以需要在/software/hadoop/etc/
目录下建一个指向ha文件夹的hadoop软链接。当前/software/hadoop/etc/
目录下是这样的:
依次执行如下命令:
xcall.sh "cp -rf /software/hadoop/etc/full /software/hadoop/etc/ha"
xcall.sh "rm /software/hadoop/etc/hadoop"
xcall.sh "ln -s /software/hadoop/etc/ha /software/hadoop/etc/hadoop"
xcall.sh "ls -al /software/hadoop/etc/"
现在/software/hadoop/etc/```目录下是这样的:
4. 新建服役节点
连接建立成功了,现在开始把新节点服役到集群上,因为新主机是从以前的主机拷贝来的,所以能够进行绵密需要删除以前的信息,在s135上依次执行以下命令:
rm -rf /tmp/*
rm -rf /software/hadoop/logs/*
rm -rf ~/hadoop/*
这样主机就变成一个新的主机了,接下来开始配置节点服役:
在/software/hadoop/etc/
目录下新建白名单文件include.hosts
执行命令:
vi include.hosts
白名单文件s201:/software/hadoop/etc/include.hosts
内容为:
s136
s137
s138
s139
s140 //新添加的
在hdfs-site.xml文件中添加属性:
<property>
<name>dfs.hosts</name>
<value>/soft/hadoop/etc/dfs.include.txt</value>
</property>
在nn上刷新节点,执行命令:
hdfs dfsadmin -refreshNodes
在/software/hadoop/etc/hadoop/works文件中添加新节点ip(主机名)
s135
s136
s137
s138
s139
s140 //新添加的
分发一下hdfs-site.xml文件和works文件(保证每个主机上的配置文件一样)
单独启动新的节点[s140]
中的datanode和rm
hadoop-daemon.sh start datanode
刷新webUI,此时:
节点已经变成了五个,服役成功!
5. 节点的退役
这里要把s139和s140都退役,
添加退役节点的ip到黑名单/software/hadoop/etc/
,不要更新白名单:
s139
s140
配置hdfs-site.xml
<property>
<name>dfs.hosts.exclude</name>
<value>/soft/hadoop/etc/dfs.hosts.exclude.txt</value>
</property>
刷新nn节点和NM节点
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes
查看webUI,节点状态在Decommisstioning
继续刷新webUI,当显示为如下:
说明s139和s140已经退役成功。
(此时如果想要他们重新服役,只需要在黑名单中删除并重新刷新hdfs和yarn即可)
然后从白名单s135:/software/hadoop/etc/include.hosts
删除已经退役的节点,并再次刷新节点:
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes
最后从works文件中删除退役节点。
再刷新webUI,显示如下:
退役成功。