流程可以完全参照《Hadoop权威指南》
注意:{HADOOP_HOME}/etc/full/slaves文件与节点无关,仅用于在名称节点启动时向文件中的节点发布启动命令。决定节点是否能连接到Hadoop集群不由它决定,由namenode上的dfs.hosts属性决定。该文件放在namenode的本地文件系统中,每行对应一个datanode的网络地址(由datanode报告,可以通过namenode的网页查看),如果需要为一个datanode指定多个网络地址,可以将多个网络地址放在一行,由空格隔开。
通过指定黑白名单,实现节点的服役与退役,节点在黑白名单中的含义如下:
注意:当在hdfs-site.xml中还未配置白名单属性dfs.include和黑名单属性dfs.hosts.exclude是,在slaves文件中的节点均可连接。如果黑白名单属性已配置,但在对应的文件中没有加入主机信息,所有节点均不能连接。黑白名单文件只保存在namenode,不需要分发到datanode。
(一)节点的服役和退役(hdfs方式)
[新节点加入]
1.在dfs.hosts属性指定的文件中包含新节点名称,该文件在Namenode的本地目录。
[白名单]
[s130:/] /home/ctr/soft/hadoop-2.7.3/etc/ dfs.include.txt
S131
S132
S133
S134 //新增加
2.在hdfs-site.xml文件中添加属性.
<property>
<name>dfs.hosts</name>
<value>/home/ctr/soft/hadoop-2.7.3/etc/dfs.include.txt</value>
</property>
3.在Namenode上刷新节点
$>hdfs dfsadmin -refreshNodes
4.在slaves文件中添加新节点ip(主机名)
文件位置:{HADOOP_HOME}/etc/full/slaves
S131
S132
S133
S134 //新添加的
5.单独启动新的节点中的datanode
[s134]
$>hadoop-daemon.shstart datanode
6.从WebUI上检查新节点服役是否成功
[节点退役]
在节点退役前一定要注意退役后的datanode数量是否满足hdfs-sites-xml中配置的副本数,如果小于会出现问题。
1.添加退役节点的ip到黑名单,不要更新白名单。
[/home/ctr/soft/hadoop-2.7.3/etc/dfs.hosts.exclude.txt]
S134
2.配置hdfs-site.xml
<property>
<name>dfs.hosts.exclude</name>
<value>/home/ctr/soft/hadoop-2.7.3/etc/dfs.hosts.exclude.txt</value>
</property>
3.在Namenode上刷新节点
$>hdfsdfsadmin –refreshNodes
4.查看WebUI,节点状态在decommisstionin progress
5.当所有的要退役的节点都报告为Decommissioned,数据转移工作已经完成。
6.从白名单删除节点,并刷新节点
[s130:/] /home/ctr/soft/hadoop-2.7.3/etc/ dfs.include.txt
...
$> hdfs dfsadmin -refreshNodes
7.从slaves文件中删除退役节点
(二)节点的服役与退役(YARN方式)
[添加新节点]
1.在dfs.include文件中包含新节点名称,该文件在Namenode目录
[白名单]
[s130:/] /home/ctr/soft/hadoop-2.7.3/etc/ dfs.include.txt
S131
S132
S133
S134 //新增加
2.在yarn-site.xml文件中添加属性.
<property>
<name>yarn.resourcemanager.nodes.include-path</name>
<value>/home/ctr/soft/hadoop-2.7.3/etc/dfs.include.txt</value>
</property>
3.在nn上刷新节点
$>yarnrmadmin -refreshNodes
4.在slaves文件中添加新节点ip(主机名)
S131
S132
S133
S134 //新添加的
5.单独启动新的节点中的nodemananger
[s134]
$>yarn-daemon.shstart nodemananger
[退役]
1.添加退役节点的ip到黑名单,不要更新白名单.
[/home/ctr/soft/hadoop-2.7.3/etc/dfs.hosts.exclude.txt]
S134
2.配置yarn-site.xml
<property>
<name>yarn.resourcemanager.nodes.exclude-path</name>
<value>/home/ctr/soft/hadoop-2.7.3/etc/dfs.hosts.exclude.txt</value>
</property>
3.刷新rm节点
$>yarnrmadmin -refreshNodes
4.查看webui,节点状态在decommisstionin progress.
5.当所有的要退役的节点都报告为Decommissioned,数据转移工作已经完成。
6.从白名单删除节点,并刷新节点
$>yarnrmadmin -refreshNodes
7.从slaves文件中删除退役节点