不停集群的情况下增删节点

来源:百度文库 编辑:神马文学网 时间:2024/04/29 01:07:18

http://coderplay.javaeye.com/blog/290767

http://www.javaeye.com/topic/350223

添加节点

操作如下:
首先 把新节点的 IP或主机名 加入主节点(master)的 conf/slaves 文件。
然后 登录新的从节点,执行以下命令:
$ cd path/to/hadoop
$ bin/hadoop-daemon.sh start datanode
$ bin/hadoop-daemon.sh start tasktracker

然后 就可以在namanode机器上运行balancer,执行负载均衡
$bin/hadoop  balancer

注:在0.21中执行bin/hadoop-daemon.sh start datanode 会提示该命令已废除,建议使用./hdfs datanode 命令,但是用后者反而会抛异常。

删除节点

比如我原来有10个节点的集群. 现在我想停掉2个,但数据不能丢失,只能让它们的数据转移到其它8台上.这道过程就是decommission. 我们不能直接把那2台停掉, 要在停掉之前把数据转移出去.

首先建立一个excludes文件.它是一个文本, 里面每行就是想要停掉的主机名.这里excludes 放在 $HADOOP_HOME下
例如
CS02
CS03
CS04
CS05
CS06
CS07
CS08
CS09
CS10
这样就表明要把9台机器给停了.


然后在conf/hadoop-site.xml添加这样的属性:
                                                                                                                         
        dfs.hosts.exclude                                                                                             
        excludes                                                                                                    
 
  

做完这步, 用bin/hadoop dfsadmin -refreshNodes命令更新结点以及hadoop配置

然后你可以通过 bin/hadoop dfsadmin -report 就可以查看到类似这样的信息:

Name: 192.168.0.86:50010
State          : Decommission in progress
Total raw bytes: 30452150272 (28.36 GB)
Remaining raw bytes: 17727606637(16.51 GB)
Used raw bytes: 6480990208 (6.04 GB)
% used: 21.28%
Last contact: Thu Nov 27 02:25:40 CST 2008

Name: 192.168.0.89:50010
State          : Decommissioned
Total raw bytes: 0 (0 KB)
Remaining raw bytes: 0(0 KB)
Used raw bytes: 4703211520 (4.38 GB)
% used: ∞%
Last contact: Thu Jan 01 08:00:00 CST 1970

可以看到86在停止中, 89已经停止了.
在没停止之前, mapreduce会拒绝操作. 会出异常的

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/vozon/archive/2010/10/27/5968939.aspx