hadoop集群 动态添加或删除节点
Posted double_kill
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop集群 动态添加或删除节点相关的知识,希望对你有一定的参考价值。
hadoop集群 动态添加或删除节点
在运行中的ambari hadoop集中中动态添加或删除节点
1. 下线hdfs节点
1) 下线datanode
namenode节点上dfs.exclude文件,看配置文件怎么配置的,里每行添加一个服务器名,如我要下线server7,server8,server9,则如下:
server7
server8
备注:
如果hdfs-site.xml没有找到dfs.hosts.exclude,那么就手动把下面内容加入到hdfs-site.xml中,然后把需要Decommission的机器写到文件/etc/hadoop/conf/dfs.exclude中去。
<property> <name>dfs.hosts.exclude</name> <value>/etc/hadoop/conf/dfs.exclude</value> </property>
2) 选择任意一台节点执行:
(如果要加速下线 可以先把集群块的复制个数减少,再执行下线(导致数据迁移))
hdfs dfsadmin -refreshNodes
3) 上面刷新后 可以查看下线进度
可以通过
hdfs dfsadmin -report
或者web界面查看该datanode状态转为Decommission In Progress。
下线会把该节点的数据拷贝到其他节点上去
如果节点上数据比较多,下线会比较慢,等待。
当datanode完成数据迁移时,姿态会变为Decommissioned,继续下面操作
4) 这一步:没有试过,不知道真假
下图状态其实已退役完全(block 转移结束),后续hadoop会自动删除datanode上的数据,也可以直接停掉datanode,手动删除数据
5)停止已经下线的datanode节点,然后删除该节点(该节点数据已经被迁移到其他节点)
6) 删除dfs.exclude中下线节点的hosts(在配置文件中),重新刷新:
hdfs dfsadmin -refreshNodes
7)刷新后,确认已经清楚了下线该节点的配置
在hdfs的管理台页面可以看见 Decommission的节点应该不包含上面已经完成了下线的节点
hadoop dfsadmin -report:也可以查看
7) 删除slaves中下线节点的hosts
---------------------------------------------------------------------------------------
2. 下线yarn节点
1) 下线yarn节点
resourcemanager节点上yarn.exclude文件里每行添加一个服务器名,如我要下线server7,server8,server9,则如下:
server7
server8
备注:下线tasktracker or nodemanager(过程与下线datanode类似,以下列举不同点)
A、添加(或修改)如下配置项到mapred-site.xml
- <property>
- <name>mapred.hosts.exclude</name>
- <value>mrhosts.exclude</value>
- </property>
2) 选择任意一台节点执行:
(如果要加速下线 可以先把集群块的复制个数减少,再执行下线(导致数据迁移))
yarn rmadmin -refreshNodes
yarn node -list #查看
3)若没启用yarn,即下线tasktracker时执行:
hadoop mradmin -refreshNodes
---------------------------------------------------------------------------------------
4. 上线节点
上线节点基本与下线相同
1) slaves文件里每行添加一个上线服务器名,同时保证dfs.exclude文件为空。
2) ./hdfs dfsadmin -refreshNodes
3) 在要上线的节点上启动datanode:
./hadoop-daemon.sh start datanode
4) 如需要启动nodemanager,则执行:
./yarn-daemon.sh start nodemanager
5) 修改slaves,添加上线节点的hosts
以上是关于hadoop集群 动态添加或删除节点的主要内容,如果未能解决你的问题,请参考以下文章