为Hadoop集群撤销节点

本文详细介绍了如何从Hadoop集群中安全地撤销节点,包括更新exclude文件、关闭tasktracker和datanode,以及处理Decommission in progress状态的问题。在节点下架过程中,需确保数据已完全复制到其他节点,并检查namenode日志以解决可能出现的块复制问题。
摘要由CSDN通过智能技术生成

2012-12-07

 步骤:

1. 在namenode中应该有至少一个exclude文档,方便将要移除的机器写入其中。

  • 对于hdfs,配置属性hdfs.hosts.exclude;
  • 对于mapred,配置属性mapred.hosts.exclude。可以都指向该文件。  

2. 手动关闭待下架机器的tasktracker。

方法:在待下架机器上执行   $HADOOP_HOME/bin/hadoop-daemon.sh stop tasktracker     。  

3. 运行命令强制刷新集群各节点信息

$HADOOP_HOME/bin/hadoop dfsadmin -refreshNodes          

4. 查看刷新之后的节点信息

$HADOOP_HOME/bin/hadoop dfsadmin -report            

  • 可以发现指定节点状态为:   Decommission Status : Decommission in progress      
  • 这表明集群正在拷贝数据到其他机器      
  • 等待节点状态改变: Decommission Status : Decommissioned        
  • 表明数据拷贝完成,可以下架机器。
  • 方法:在待下架机器上执行 $HADOOP_HOME/bin/hadoop-daemon.sh stop datanode        

5.  在namenode的配置文件slaves和exclude文档中移除该节点的信息。

   

【注意】  

 

有时候因为某些原因可能导致撤销节点始终处于Decommission in progress的状态。详情请参考: http://www.hadoopor.com/viewthread.php?tid=4589 

 

本质的原因是某些块复制出现了问题:

查看namenode的日志即可发现问题,类似为:

INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Block: blk_-3167344645674641763_2210, Expected Replicas: 10, live replicas: 6, corrupt replicas: 0, decommissioned replicas: 1, excess replicas: 0, Is Open File: false, Datanodes having this block: 192.168.1.24:50010 192.168.1.23:50010 192.168.1.22:50010 192.168.1.26:50010 192.168.1.25:50010 192.168.1.28:50010 , Current Datanode: 192.168.1.28:50010, Is current datanode decommissioning: true    

解决方法:

在namenode上使用fsck工具查看指定块的位置,然后手动删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值