动态上下线datanode的方法

namenode 中 hdfs-site.xml 配置

<property>

<name>dfs.hosts</name>

<value>/ddmap/hadoop-1.0.4/conf/hdfs_include</value>

</property>

<property>

<name>dfs.hosts.exclude</name>

<value>/ddmap/hadoop-1.0.4/conf/hdfs_exclude</value>

</property>

dfs.hosts 所对应的文件中列出了所有可以连接到 namenode 的 datanode,

如果为空则所有的都可以连入。dfs.hosts.exclude 所对应的文件中列出了禁

止连接 namenode 的 datanode 节点。如果一个节点在这两个文件中都存在,则

不允许连入。

动态下线:

下线 datanode 步骤

1. 将要下线的机器加入到 dfs.hosts.exclude 指定的文件中(使用主

机名,ip 基本不靠谱),然后刷新配置 hadoop dfsadmin -refreshNodes。

2. 通过 hadoop dfsadmin -report 或者 web 界面,可以看到,该

datanode 状态转为 Decommission In Progress。

3. 当 decommission 进程完成数据移动,datanode 状态会转变为

Decommissioned,然后 datanode 会自动停止 datnode 进程。然后你可以看见

dead nodes 下多了一个你想要下线的节点。

4. 然后删除 include 和 exclude 中该节点的 hosts,重新刷新 hadoop

dfsadmin -refreshNodes。

5. 最后别忘了删除 slaves 中该节点的配置,防止下次整个集群重启

时,该节点不能通过 namenode 自动启动。

注意:当你下线一个 datanode 节点,有可能该节点长时间处于

Decommission In Progress 状态,一直不能转变为 Decommissioned。请你用

hadoop fsck /检查下是否有些块少于指定的块数,特别注意那些 mapreduce 的临时文件。将这些删除,并且从垃圾箱移除,该节点就可以顺利下线。这是我

解决该问题的办法。

动态上线:

上线一个节点的步骤

1. 保证将要上线的机器不存在于 dfs.hosts.exclude 所对应的的文件

中,并且存在于 dfs.hosts 所对应的文件中。

2. 在 namenode 上刷新配置:hadoop dfsadmin -refreshNodes。

3. 在要上线的节点重启 datanode,hadoop-daemon.sh start

datanode。

4. 通过 hadoop dfsadmin -report 或者 web 界面,可以看到,节点已

经上线。

5. 还是老话最后别忘了修改 slave

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值