动态删除节点:
进入hadoop目录的etc/hadoop/目录
1.新建excludes文件,每行写一个要删除的节点的主机名
2.在hdfs-site.xml中增加
<property>
<name>dfs.hosts.exclude</name>
<value>/data/hadoop/etc/hadoop/excludes</value>//全路径
</property>
3.在mapred-site.xml中增加
<property>
<name>mapred.hosts.exclude</name>
<value>/data/hadoop/etc/hadoop/excludes</value>
<final>true</final>
</property>
执行命令:
hadoop dfsadmin -refreshNodes
查看节点状态hadoop dfsadmin -report或者web管理端页面,可以看到该节点是decomissioning状态,等它变化为decomissioned,就可以把这个节点拿掉了。拿掉后,该节点上进程还是都在的,直接kill即可。
动态新增节点:
启动datanode
hadoop-daemon.sh –config /data/hadoop/etc/hadoop/ –script hdfs start nodemanager
然后启动nodemanager
yarn-daemons.sh –config /data/hadoop/etc/hadoop/ start nodemanager
或以下命令启动:
hadoop-daemon.sh start datanode
yarn-daemon.sh start nodemanager
然后,删除前文中的excludes文件中该节点的主机名,执行刷新操作即可。
hadoop dfsadmin -refreshNodes
至此,可以看到已经新增了该节点的datanode。