hadoop学习笔记(动态删除节点)

在hadoop集群环境下需要将两台datanode删除,为了不影响在运行业务,需对节点进行动态删除,记录操作过程如下:


1, 从集群中移走节点,需要对移走节点的数据进行备份:

在主节点的core-site.xml配置文件中添加如下内容:

<property>
          <name>dfs.hosts.exclude</name>
          <value>/etc/hadoop/conf/excludes</value>

</property>

说明

dfs.hosts.exclude:指要删除的节点

/etc/hadoop/conf/excludes:指定要被删除文件所在路径及名称,该处定义为excludes

2, 在1中设置目录中touch excludes,内容为每行需要移走的节点

10.3.14.91

3,进入/usr/lib/hadoop/bin 运行命令:hadoop dfsadmin -refreshNodes

该命令可以动态刷新dfs.hosts和dfs.hosts.exclude配置,无需重启NameNode。

执行完成被删除节点datanode消失了,但是tasktracker还会存在,需要手动停掉

4,然后通过 bin/hadoop dfsadmin -report查看。

结果略
 

5,通过4中命令可以查看到被删除节点状态,如10.3.14.91

Decommission Status : Decommissioned
说明从91往其他节点同步数据已经完成,如果状态为Decommission Status : Decommissione in process则还在执行。

至此删除节点操作完成

总结

在拔掉节点时注意要把往hadoop放数据程序先停掉,否则程序还会往要删除节点同步数据,删除节点程序会一直执行。

数据节点间的数据同步还是相当给力的,眨眼功夫就完成了

猜你喜欢

转载自surpass-li.iteye.com/blog/1681362