您的位置:首页 > Web前端 > Node.js

CDH4 动态添加datanode和nodemanager

2016-07-13 15:51 225 查看
 想要在运行中的hadoop集中中动态添加或删除节点,肿么办呢? 

        【准备工作:】 

        1. 如是添加节点,则需要将所有新增数据节点上的Hadoop环境都已经按已有环境部署完毕(host、ssh等) 

        2. 需要的配置项: 

                (1) dfs.hosts 配置存放待上线数据节点名字文件的绝对路径。(俺把所有线上节点都加上去了) 

                (2) dfs.hosts.exclude 配置存放待下线数据节点名字文件的绝对路径。 

        3. 具体配置如下:(hdfs-site.xml) 
<property>               
<name>dfs.hosts.exclude</name>               
<value>/app/cdh4/hadoop-2.0.0-cdh4.3.0/etc/hadoop/hdfs_exclude</value>          
</property>        
<property>               
<name>dfs.hosts</name>               
<value>/app/cdh4/hadoop-2.0.0-cdh4.3.0/etc/hadoop/hdfs_include</value>          
</property>

        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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  技术 hadoop 大数据