Hadoop 添加删除DataNode 和 TaskTracker

在配置 hadoop相关信息时,建议 datanode和tracker分开写独立的exclude文件,因为一个节点即可以同时是 datanode和tasktracker,也可以单独是datanode和tasktracker.

1、删除datanode

修改 namenode 上的hdfs-site.xml

<property>

<name>dfs.hosts</name>

<value>/hadoop/hadoop/conf/datanode-allow-list</value>

<description>这个文件中包含了允许连接这个namenode的主机列表。这个文件必须指定全路径。但是如果value is empty ,所有的hosts将是被允许的.</description>

</property>

      ----------------------------------------------------------

<property>

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

<value>/hadoop/hadoop/conf/datanode-deny-list</value>

<description>与上面的类似,惟一的差别是,它是不允许访问的主机列表,同时如果value is empty表明没有不允许访问的主机</description>

</property>

     ------------------------------------------------------------

所有根据上述的描述,我们知道,如果需要删除datanode我们只需要做以下操作:

1、将要删除的datanode加入 dfs.hosts.exclude指定的文件中。(不过最好使用主机名,IP有可能失效)

2、动态刷新配置,不需要重启namenode: hadoop dfsadmin -refreshNodes

3、我们可以用过web ui(默认:IP:50070) 或者hadoop dfsadmin -report来查看该datanode的状态,注意,刚开始该datanode的状态将会是decommissioning,过段时间才为dead

4、删除dfs.hosts文件中该节点

如果你想重新启用该节点,那么你需先从dfs.hosts.exclude中删除该节点,然后refreshNodes,然后到该节点上,重新启动该 datanode:

hadoop-daemon.sh stop datanode / hadoop-daemon.sh start datanode

注意:正确的删除datanode应该按照配置exclude文件的方式,而不应该直接去 stop datanode,这样会造成数据丢失,而且stop以后你会发现 web UI 和   hadoop dfsadmin -report仍然会显示该节点是有效的,除非重新启动namenode。

而重新启用exclude的节点可以stop datanode,因为此时该datanode并不包含在cluster中,所以stop后不会造成数据丢失。

================================================================


2、添加 datanode

如果存在dfs.hosts文件,且不为空,则添加新的datanode到该文件中, refreshNodes。

然后到新节点上,记动即可: hadoop-daemon.sh start datanode

如果不存在dfs.hosts文件,或者文件为空,则直接启动新节点即可。

====================================================================


3、删除tasktracker

原理和步骤与删除datanode一样,不过,它的配置信息有不同:

配置文件:mapred-site.xml

<property>

<name>mapred.hosts</name>

........

</property>

----------------------------------------------------------

<property>

<name>mapred.hosts.exclude</name>

......

</property>

动态刷新配置的命令为: hadoop mradmin -refreshServiceAcl(标明,0.20没有网上所说的-refreshNodes) ,该命令可以立即生效,可以看到webui中,nodes节点。

具体的删除tasktracker的步骤和 datanode的步骤一样,注意一下它们的专属命令即可。

同时,我们重启 tasktracker的命令如下:

hadoop-daemon.sh stop tasktracker/hadoop-daemon.sh start tasktracker.

注意,正确的删除 tasktracker的方法应该按照上述的方法,使用exclude文件,而不就应该直接去tasktracker上去 stop tracker,这样会造成job失败,而且 stop以后,web ui仍然显示该tasktracker节点。除非重新启动jobtracker

同时,在做这块操作的时候,我们尽量使用hostname而不使用IP,因为它会有一些你可能认为正确,但确实服务器不实别的错误

=======================================================================================

4、添加tasktracker

与datanode类似

===========================================================================

5、添加或删除datanode后,平衡头绪盘利用率

运行 bin/start-balancer.sh,这个会很耗时间。

备注:

如果不 balance,那么 cluster 会把新的数据都存放在新的node上,这样会降低mr的工作效率;

start-balancer.sh -threshold 0.1

threadshold是平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长.

balancer 也可以在有 mr job的cluster上运行,默认dfs.balance.bandwithPerSec很低,为1M/s(配置文件中单位为字节)。在没有mr job时,可以提高该设置加快负载均衡时间。





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值