【准备工作:】
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
1. 下线节点
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
2. 上线节点
上线节点基本与下线相同
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
随笔原创,如有不当或错误之处,还望批评指正,感激涕零!!!
转载请说明出处: http://xmaster.iteye.com/admin/blogs/1930231