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

1. <property>  
2.           <name>mapred.hosts.exclude</name>  
3.           <value>mrhosts.exclude</value>  
4. </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