增加机器不重启操作如下:
首先,把新节点的 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
删除机器
不安全的方式
由于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状态:
我们需要等待一定的时间,等待hp3中datanode的Decommission操作完成以后,再到hp3机器中关闭所有的Hadoop进程即可。
这样就完成了整个从集群中删除机器的操作。