一.节点下线:
出先问题:大批量丢死块(2000多个)
原因:下线节点的时候一块下了10个节点。
解决办法:3个副本下线机器的时候最好2台2台的下,还要看nn(50070主页面)页面上的进度,到0了以后在删除节点。
文本解释:
Decommission Datanode就是把Datanode从HDFS集群中移除掉。
Datanode是存储实际数据的,因此在Decommission Datanode的时候需要把Datanode上的数据迁移到别的机器上。下线的时候Datanode会有以下操作,1:计算块信息 2:删除块 3:copy块 4:校验块信息操作步骤
1:在Namenode上,把需要Decommission的Datanode的机器名加入到dfs.hosts.exclude(该配置项在hdfs-site.xml)所指定文件中,也就是告诉Namenode哪些Datanode要被Decommission。
如果hdfs-site.xml
没有找到dfs.hosts.exclude
,那么就手动把下面内容加入到hdfs-site.xml
中,然后把需要Decommission的机器写到文件/etc/hadoop/conf/dfs.exclude
中去。
<property>
<name>dfs.hosts.exclude</name>
<value>/etc/hadoop/conf/dfs.exclude</value>
</property>
exclude 例子: pslave1 pslave2 pslave3
2 . 用如下命令启动Decommission:
hdfs dfsadmin -refreshNodes
刷新后在hfs页面可以看见 Decommission In Progress 的节点
hadoop dfsadmin -report
:也可以查看
note:如果加速下线 可以把块的复制个数减少