您的位置:首页 > Web前端 > Node.js

Datanode部分节点下线

2016-12-14 18:02 204 查看
最近需要将HDFS集群进行缩减,datanode由8台减到3台。google了一下,觉decommission方式最稳妥,于是使用该方法进行操作。

前提条件:

namenode的hdfs-site.xml 里有如下配置项

<property>
<name>dfs.hosts</name>
<value>/data/hadoop/etc/hadoop/slaves</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/data/hadoop/etc/hadoop/dfs_exclude</value>
</property>


dfs.hosts是允许接入的机器列表,如果没有配置的话,则任何节点可以接入。dfs.hosts.exclude是打算下线的机器列表。

下线节点很简单。

首先在dfs.hosts.exclude的文件里填写想要下线的机器的IP/hostname,然后在namenode上运行

hadoop dfsadmin -refreshNodes


打开namode监控UI,就可以看到Decommissioning Nodes 的数量增加,同时Live Nodes页面里,想要下线的机器状态变成了 Decommission In Progress。

此时decommissioning的机器上的数据块会被copy到其它机器上。在监控首页面和Live Nodes页面下方都可以看到还有多少block待复制。

当这些数据块被copy完后,该机器就会变成Decommissioned的状态。接下来,就可以停掉该机器的datanode服务了。同时也需要删除dfs.hosts和dfs.hosts.exclude文件里的该机器地址, 并再次运行

hadoop dfsadmin -refreshNodes


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: