CDH4 动态添加datanode和nodemanager

        想要在运行中的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

猜你喜欢

转载自xmaster.iteye.com/blog/1930231
今日推荐