Hadoop 生产环境集群平滑下线节点(datanode/tasktracker or nodemanager)
如题,生产环境下可能会碰到下线服务器需求,强制关闭tasktracker or nodemanager影响的只是作业,但强制下线大于HDFS备份数的datanode就有丢数据的风险了。Hadoop提供了平滑下线的工具,本文以2.2版本为例。一、修改配置(登录集群中任一台服务器,最好直接nn节点吧,以下线datanode为例)
1、添加(或修改)如下配置项到hdfs-site.xml
<property>
<name>dfs.hosts.exclude</name>
<value>dfshosts.exclude</value>
</property>
注:1、value值(dfshosts.exclude)为文件名,可自定义
2、示例使用相对路径,所以需要手动在hdfs-site.xml统计目录创建该文件。也可使用绝对路径。
2、配置需下线的datanode
1)查看50070页面,找到需下线datanode的注册名字,即下图中node对应值
2)编辑dfshosts.exclud文件
将node对应值添加进该文件。
二、执行下线命令
hdfs dfsadmin -refreshNodes
三、状态查看
1、显示正在退役的3个datanode,此时,hadoop复制该datanode block至其他datanode
2、点击“Decommissioning Nodes”可看到执行时间,退役datanode ip,正在复制block数量等信息
3、下图状态其实已退役完全(block 转移结束),后续hadoop会自动删除datanode上的数据,也可以直接停掉datanode,手动删除数据
附:下线tasktracker or nodemanager(过程与下线datanode类似,一下列举不同点)
1、添加(或修改)如下配置项到mapred-site.xml
<property>
<name>mapred.hosts.exclude</name>
<value>mrhosts.exclude</value>
</property>
2、执行下线命令
yurm rmadmin -refreshNodes
若没启用yarn,即下线tasktracker时执行:
hadoop mradmin -refreshNodes
版权声明:本文为博主原创文章,未经博主允许不得转载。
页:
[1]