前提:我们现有集群node01、node02、node03,现在动态添加一个node04 ,开搞!!
环境准备:
1、先克隆一台和集群中一样的机器
2、修改机器ip和主机名称
3、删除原来的data文件和log日志的残存的文件
服役新节点的具体步骤:
1、在NameNode
的安装目录中的etc/hadoop
文件夹下创建dfs.hosts
文件,添加DataNode
的主机名称(包括新添加的节点)
vim dfs.hosts
node01
node02
node03
node04
2、在NameNode
的hdfs-site.xml
配置文件中添加dfs.hosts
属性
<property>
<name>dfs.hosts</name>
<value>/opt/modules/hadoop/etc/hadoop/dfs.hosts<alue>
</property>
3、刷新NameNode
hdfs dfsadmin -refreshNode
提示:Refresh nodes successful
4、更新ResourceManager
节点
yarn rmadmin -refreshNode
5、在NameNode
的slaves
文件中添加新主机
的名称
注意:不需要分发文件
vim slaves
node04
6、单独
命令启动新节点
和节点管理器
hadoop-daemon.sh start datanode
yarn-deamon.sh start nodemanager
7、在web上查看是否启动
node01:50070
8、如果数据不均衡的话,可以用命令实现集群的再平衡
start-dalancer.sh
退役数据节点步骤
1、在NameNode
的安装目录的etc/hadoop
目录下面创建dfs.hosts.exclude
文件,添加主机名(要退役的节点
)
vim dfs.hosts.exclude
node03
node04
2、在NameNode
的hdfs-site.xml
配置文件中增加dfs.hosts.exclude
属性
<property>
<name>dfs.hosts.exclude</name>
<value>/opt/modules/hadoop/etc/hadoop/dfs.hosts.exclude<alue>
</property>
3、刷新NameNode
、刷新ResourceManager
hdfs dfsadmin -refreshNodes
提示:Refresh nodes successful
yarn rmadmin -refreshNodes
4、检查web,退役节点的状态为decommission in progress
(退役中),说明数据节点正在复制块到其他节点
5、等待退役节点状态为:decommissioned
(所有块已经复制成功),停止
该节点及节点资源管理器
注意:如果副本数是3.服役的节点小于等于3.是不能退役成功的,需要修改副本数之后才能退役
hadoop-daemon.sh stop datanode
yarn-daemon.sh stop nodemanager
6、从include
文件中删除
退役节点,在运行刷新节点的命令
- ①、从
dfs.hosts
文件中删除
退役的节点node03、node04
- ②、刷新
NameNode
,刷新ResourceManager
hdfs dfsadmin -refreshNodes
提示:Refresh nodes successful
yarn rmadmin -refreshNodes
7、从NameNode
的slaves
文件种删除退役节点(node03、node04
)
8、若是数据不均衡刷新
start-balancer.sh