一 , 动态添加 DataNode 节点
1 , 前提是 , 需要新加入的 DataNode 节点已经配置好 SSH 无密登录互通 .
2 , 复制存在 DataNode 节点 上的 Hadoop运行目录、hdfs目录及tmp目录至 新的DataNode.
3 , 在新DataNode上启动hadoop
hadoop-daemon.
sh
start datanode
yarn-daemon.
sh start datanode
4 , 在NameNode上刷新节点
hdfs dfsadmin -
refreshNodes
start-balancer.
sh
5 ,
为方便下次启动,可以将新DataNode的域名和ip加入 /etc/hosts 中
6 , 查看是否成功 : 这里的IP是NameNode 的IP
登录 : IP:50070 进行查看 , 如下图所示 :
![](https://i-blog.csdnimg.cn/blog_migrate/34dc5eb28c61b87555def1b3e6e38976.png)
二 , 动态删除 DataNode 节点
1 ,
配置NameNode的hdfs-site.xml,适当减小dfs.replication副本数,增加dfs.hosts.exclude配置
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/local/hadoop2/etc/hadoop/excludes</value>
</property>
2 , 在对应路径(/etc/hadoop/)下新建excludes文件,并写入待删除DataNode的ip或域名
3 ,
在NameNode上刷新所有DataNode
hdfs dfsadmin -
refreshNodes
start-balancer.
sh
4 , 此时,可以在web检测界面(ip:50070)上可以观测到DataNode逐渐变为Dead。
5 , 记过查看如 上方DataNode 节点的动态添加结果查看相同