Hadoop学习3_在HADOOP集群中添加节点和删除节点

37 篇文章 2 订阅

文章一:

无论是在Hadoop集群中添加机器和删除机器,都无需停机,整个服务不中断。

本次操作之前,Hadoop的集群情况如下:

HDFS的机器情况如下:

[$%7O6{)LM1M[~W15O4JOVC

MR的机器情况如下:

K0%4$0K9YISIGZ$W]0V(_G8

添加机器

在集群的Master机器中,修改$HADOOP_HOME/conf/slaves文件,在其中添加需要加入集群的新机器(hp3)的主机名:

hp3
hp2
dell1
dell2
dell3
dell4

然后在Master机器中执行如下命令:

$HADOOP_HOME/bin/start-all.sh

这样操作完成之后,新的机器就添加到集群中来了。

HDFS集群增加了一台新的机器:

819BH7[D$EREKMB8D_WJBSU

MR集群中也新增了一台机器:

Q5CV$04(6({R8ZTJJ$FW_T7

删除机器

不安全的方式

由于Hadoop集群自身具备良好的容错性,可以直接关闭相应的机器,从而达到将该机器撤除的目的。但是如果一次性操作3台以上的机器,就有可能造成部分数据丢失,所以不推荐使用这种方式进行操作。

安全的方式

在集群的Master机器中,新建一个文件:$HADOOP_HOME/conf/nn-excluded-list,在这个文件中指定需要删除的机器主机名(hp3):

hp3

然后,修改Master机器的配置文件:$HADOOP_HOME/conf/hdfs-site.xml,添加如下内容:

<property>

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

  <value>conf/nn-excluded-list</value>

</property>

最后,在Master机器中执行如下命令:

$HADOOP_HOME/bin/hadoop dfsadmin -refreshNodes

这样操作完成之后,可以在HDFS集群中看到,hp3机器已经处于Decommission In Progress状态:

C1X8DJ7(]I48C}{@(JOIPTD

但是MR机器中hp3机器依旧在运行中:

Q5CV$04(6({R8ZTJJ$FW_T7

我们需要等待一定的时间,等待hp3中datanode的Decommission操作完成以后,再到hp3机器中关闭所有的Hadoop进程即可。

这样就完成了整个从集群中删除机器的操作。

更多关于Hadoop的文章,可以参考:http://www.cnblogs.com/gpcuster/tag/Hadoop/


原文来自:http://www.cnblogs.com/gpcuster/archive/2011/04/12/2013411.html


文章二:

hadoop要发到每个节点的配置文件,只有core-site.xml mapred-site.xml hdfs-site.xml

添加节点


1.修改host

和普通的datanode一样。添加namenode的ip

2.修改namenode的配置文件conf/slaves
添加新增节点的ip或host

3.在新节点的机器上,启动服务

[root@slave-004 hadoop]# ./bin/hadoop-daemon.sh start datanode
[root@slave-004 hadoop]# ./bin/hadoop-daemon.sh start tasktracker

 

4.均衡block

[root@slave-004 hadoop]# ./bin/start-balancer.sh

1) 如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率
2) 设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长

[root@slave-004 hadoop]# ./bin/start-balancer.sh -threshold 5

3) 设置balance的带宽,默认只有1M/s

 <property>
   <name>dfs.balance.bandwidthPerSec</name>
   <value>1048576</value>
   <description>
     Specifies the maximum amount of bandwidth that each datanode
     can utilize for the balancing purpose in term of
     the number of bytes per second.
   </description>
 </property>

注意:
1. 必须确保slave的firewall已关闭;
2. 确保新的slave的ip已经添加到master及其他slaves的/etc/hosts中,反之也要将master及其他slave的ip添加到新的slave的/etc/hosts中

 

删除节点


1.集群配置
修改conf/hdfs-site.xml文件

 <property>
   <name>dfs.hosts.exclude</name>
   <value>/data/soft/hadoop/conf/excludes</value>
   <description>Names a file that contains a list of hosts that are
   not permitted to connect to the namenode.  The full pathname of the
   file must be specified.  If the value is empty, no hosts are
   excluded.</description>
 </property>

 

2.确定要下架的机器
dfs.hosts.exclude定义的文件内容为,每个需要下线的机器,一行一个。这个将阻止他们去连接Namenode。如:

slave-003
slave-004

3.强制重新加载配置

[root@master  hadoop]# ./bin/hadoop dfsadmin  -refreshNodes

它会在后台进行Block块的移动

4.关闭节点 
等待刚刚的操作结束后,需要下架的机器就可以安全的关闭了。

[root@master  hadoop]# ./bin/ hadoop dfsadmin -report

可以查看到现在集群上连接的节点

正在执行Decommission,会显示:
Decommission Status : Decommission in progress  

执行完毕后,会显示:
Decommission Status : Decommissioned

5.再次编辑excludes文件
一旦完成了机器下架,它们就可以从excludes文件移除了
登录要下架的机器,会发现DataNode进程没有了,但是TaskTracker依然存在,需要手工处理一下


原文来自:http://www.open-open.com/lib/view/open1349965401900.html


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值