运行中hadoop增加和删除datanode (*)
增加Hadoop新节点:
向一个正在运行的Hadoop集群中增加几个新的Nodes
1.?新节点上部署java/hadoop程序,配置相应的环境变量
2.?新节点上增加用户,从master上拷贝id_rsa.pub并配置authorized_keys
3.?新节点上设置/etc/hosts,只要有本机和master的host即可
/etc/hosts
127.0.0.1?????? localhost
10.10.10.101 node1
10.10.10.102 node2
10.10.10.103 node3
10.10.10.104 node4
4.?新节点上建立相关的目录,并修改属主,将Node4之中 ~/tmp目录下的内容都删除掉,否则会被认为已经创建的节点。
5. master的slaves文件中增加上相的节点(* 注意:只在NameNode之上配置就可以)
/etc/masters
node1
/etc/slaves
node2
node3
node4
6.?在新节点上启动datanode和tasktracker
localadmin@node4:~/hadoop-0.20.2/bin$ hadoop-daemon.sh start datanode
localadmin@node4:~/hadoop-0.20.2/bin$ hadoop-daemon.sh start tasktracker
使用'Jps'进行检查。
7.?进行block块的均衡
在hdfs-site.xml中增加设置balance的带宽,默认只有1M:
<property>?
??? <name>dfs.balance.bandwidthPerSec</name>?
??? <value>10485760</value>?
??? <description>
??????? Specifies the maximum bandwidth that each datanode can utilize for the balancing purpose in term of the number of bytes per second.
??? </description>?
</property>
运行以下命令:
hadoop/bin/start-balancer.sh -threshold 3
均衡10个节点,移动400G数据,大概花费了3个小时
The cluster is balanced. Exiting…
Balancing took 2.9950980555555557 hours
============================================================
删除Hadoop节点:
1.?在hadoop的conf目录下生成一个excludes的文件 /etc/nn-excluded-list,写上需要remove的节点
????一个节点一行,如:
node4
<property>????
??? <name>dfs.hosts.exclude</name>????
??? <value>/etc/nn-excluded-list</value>???
</property>
3.?复制文件到集群各节点上
4.?执行hadoop dfsadmin -refreshNodes命令,它会在后台进行Block块的移动
????从移出的Nodes上移动到其它的Nodes上面
5.?通过以下2种方式查看Decommission的状态:
??? hadoop dfsadmin -report
????http://10.10.10.101:50070/dfsnodelist.jsp
????正在执行Decommission,会显示:
??? Decommission Status : Decommission in progress
????执行完毕后,会显示:
??? Decommission Status : Decommissioned