然后在新节点上运行
./hadoop-daemon.sh start datanode
./hadoop-daemon.sh start tasktracker
然后在namenode上运行hadoop balance
(在数据平衡的时候,注意传输块大少的选择)
删除节点(整个过程要把数据的录入和删除任务停止):
1. 把需要删除的节点填入一个文件 echo "192.168.239.71" > /data/hadoop-0.20.2/conf/excludes
2. 在主节点的core-site.xml配置文件中添加如下内容:
<property>
<name>dfs.hosts.exclude</name>
<value>/data/hadoop-0.20.2/conf/excludes</value>
</property>
说明
dfs.hosts.exclude:指要删除的节点
/data/hadoop-0.20.2/conf/excludes:指定要被删除文件所在路径及名称,该处定义为excludes
3. 运行命令使其生效
hadoop dfsadmin -refreshNodes
该命令可以动态刷新dfs.hosts和dfs.hosts.exclude配置,无需重启NameNode。节点删除后,节点的tasktracker还是在运行中,需手动删除。
./hadoop-daemon.sh stop datanode
hadoop dfsadmin -report查看结果,如下
Name: 192.168.239.71:50010
Decommission Status : Decommissioned
Configured Capacity: 0 (0 KB)
DFS Used: 0 (0 KB)
Non DFS Used: 0 (0 KB)
DFS Remaining: 0(0 KB)
DFS Used%: 100%
DFS Remaining%: 0%
Last contact: Thu Jan 01 08:00:00 CST 1970
如果Status为 Decommissione in process则表现数据还在平衡,这时候请不要运行数据录入或剔除机器。