hadoop 添加删除节点以及搭建集群注意问题

1, 从集群中移走节点,需要对移走节点的数据进行备份:

在主节点的hdfs-site.xml配置文件中添加如下内容:

<property>

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

          <value>/home/lqh/hadoop/excludes</value>

</property>

 

说明

dfs.hosts.exclude:指要删除的节点

/home/lqh/hadoop/excludes:指定要被删除节点的文件

 

2, /home/lqh/hadoop/excludes内容为删除节点的ip地址,每行一个

192.168.115.112

 

3,进入 运行命令:hadoop dfsadmin -refreshNodes,该命令可以动态刷新dfs.hosts(允许作为datanode的节点)和dfs.hosts.exclude(不允许作为datanode的节点)配置,无需重启NameNode。

 执行完成后被删除节点datanode消失了,但是tasktracker还会存在,需要自己手动停掉

 

4,然后通过 hadoop dfsadmin -report查看,会发现被删除节点正在退役: 

  Name: 192.168.115.112:50010

Decommission Status : Decommission in progress

 

5,通过4中命令可以查看到被删除节点状态

 

Decommissioned 说明往其他节点同步数据已经完成,如果状态为Decommission Status : Decommissione in process则还在执行。 

 

至此删除节点操作完成 

 

问题总结:

 

在拔掉节点时注意要把往hadoop放数据程序先停掉,否则程序还会往要删除节点同步数据,删除节点程序会一直执行。

 

 

添加节点


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

1<property>
2   <name>dfs.balance.bandwidthPerSec</name>
3   <value>1048576</value>
4   <description>
5     Specifies the maximum amount of bandwidth that each datanode 
6     can utilize for the balancing purpose in term of 
7     the number of bytes per second. 
8   </description>
9</property>

注意: 

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

 

集群搭建注意问题:

dfs.name.dir 与dfs.data.dir 目录不要提前创建,否则会启动namenode和datanode失败

hadoop.tmp.dir需要提前创建

master也可以充当slave

 

posted on 2013-04-10 10:18  waxili  阅读(445)  评论(0编辑  收藏  举报

导航