Hadoop DataNode 下线操作

hadoop datanode如何安全的下线,不影响线上数据,在这里记录一下备忘。

前提

在namenode机器的hdfs-site.xml中必须包含以下配置,在standby namode同样加上:

  <property>    
    <name>dfs.hosts.excludename>
    <value>${hadoop_home}/etc/hadoop/dfs_excludevalue>
  property>

如果没有可以手动添加,不需要重启hdfs
加入slave文件中有6台机器,要下线其中的3台
slaves 如下

dn1
dn2
dn3
dn4
dn5
dn6
配置exclude下线列表

在两台namenode做以下操作

touch dfs_exclude
vim dfs_exclude
加入以下内容
dn4
dn5
dn6
执行
hadoop dfsadmin -refreshNodes	

会在namenode:50070的页面上看到Decomissioning页面会出现你配置的机器,开始拷贝block到其他机器,执行完成后状态会变成Decommissioned。

关闭datanode
./hadoop-daemon.sh stop datanode

再次修改slaves文件为

dn1
dn2
dn3

并且删掉dfs_exclude文件中的host为空
重新执行 hadoop dfsadmin -refreshNodes 即可。
Ps:如果是3副本的情况下,最多只能同时下线2台。为了以防万一block丢失,还是一台台下线比较稳妥。

你可能感兴趣的:(BigData)