CDH4 动态添加datanode和nodemanager

想要在运行中的hadoop集中中动态添加或删除节点,肿么办呢?

【准备工作:】
1. 如是添加节点,则需要将所有新增数据节点上的Hadoop环境都已经按已有环境部署完毕(host、ssh等)
2. 需要的配置项:
(1) dfs.hosts 配置存放待上线数据节点名字文件的绝对路径。(俺把所有线上节点都加上去了)
(2) dfs.hosts.exclude 配置存放待下线数据节点名字文件的绝对路径。
3. 具体配置如下:(hdfs-site.xml)


dfs.hosts.exclude
/app/cdh4/hadoop-2.0.0-cdh4.3.0/etc/hadoop/hdfs_exclude


dfs.hosts
/app/cdh4/hadoop-2.0.0-cdh4.3.0/etc/hadoop/hdfs_include



[b]1. 下线节点[/b]
1) hdfs_exclude文件里每行添加一个服务器名,如我要下线server87,server88,server89,则如下:
server87
server88
server89

2) 选择任意一台节点执行:
./hdfs dfsadmin -refreshNodes

3) 这时可以通过hdfs dfsadmin -report或者web界面查看该datanode状态转为Decommission In Progress。
如果节点上数据比较多,下线会比较慢!一个字:等。。。
当datanode完成数据迁移时,姿态会变为Decommissioned,继续下面操作

4) 删除hdfs_exclude中下线节点的hosts,重新刷新:
./hdfs dfsadmin -refreshNodes

5) 删除slaves中下线节点的hosts

[b]2. 上线节点[/b]
上线节点基本与下线相同
1) hdfs_include文件里每行添加一个上线服务器名,同时保证hdfs_exclude文件为空。

2) ./hdfs dfsadmin -refreshNodes

3) 在要上线的节点上启动datanode:
./hadoop-daemon.sh start datanode

4) 如需要启动nodemanager,则执行:
./yarn-daemon.sh start nodemanager

5) 修改slaves,添加上线节点的hosts

随笔原创,如有不当或错误之处,还望批评指正,感激涕零!!!
转载请说明出处:[url]http://xmaster.iteye.com/admin/blogs/1930231[/url]

你可能感兴趣的:(hadoop)