zoukankan      html  css  js  c++  java
  • 运行中hadoop增加和删除datanode (*)


    增加Hadoop新节点:

    向一个正在运行的Hadoop集群中增加几个新的Nodes

    1. 新节点上部署java/hadoop程序,配置相应的环境变量

    2. 新节点上增加用户,从master上拷贝id_rsa.pub并配置authorized_keys

    3. 新节点上设置/etc/hosts,只要有本机和masterhost即可

    /etc/hosts

    127.0.0.1       localhost

    10.10.10.101 node1
    10.10.10.102 node2
    10.10.10.103 node3
    10.10.10.104 node4

    4. 新节点上建立相关的目录,并修改属主,将Node4之中 ~/tmp目录下的内容都删除掉,否则会被认为已经创建的节点。

    5. masterslaves文件中增加上相的节点(* 注意:只在NameNode之上配置就可以)

    /etc/masters

    node1

    /etc/slaves

    node2

    node3

    node4

    6. 在新节点上启动datanodetasktracker

    localadmin@node4:~/hadoop-0.20.2/bin$ hadoop-daemon.sh start datanode

    localadmin@node4:~/hadoop-0.20.2/bin$ hadoop-daemon.sh start tasktracker

    使用'Jps'进行检查。

    7. 进行block块的均衡

    hdfs-site.xml中增加设置balance的带宽,默认只有1M

    <property> 
        <name>dfs.balance.bandwidthPerSec</name> 
        <value>10485760</value> 
        <description>
            Specifies the maximum bandwidth that each datanode can utilize for the balancing purpose in term of the number of bytes per second.
        </description> 
    </property>

    运行以下命令:

    hadoop/bin/start-balancer.sh -threshold 3

    均衡10个节点,移动400G数据,大概花费了3个小时

    The cluster is balanced. Exiting…
    Balancing took 2.9950980555555557 hours

    ============================================================

    删除Hadoop节点:

     
    Hadoop提供了Decommission的特性,可以按照以下步骤来操作:

    1. hadoopconf目录下生成一个excludes的文件 /etc/nn-excluded-list,写上需要remove的节点

        一个节点一行,如:

    node4

    2. hdfs-site.xml中增加配置:

    <property>    
        <name>dfs.hosts.exclude</name>    
        <value>/etc/nn-excluded-list</value>   
    </property>

    3. 复制文件到集群各节点上

    4. 执行hadoop dfsadmin -refreshNodes命令,它会在后台进行Block块的移动

        从移出的Nodes上移动到其它的Nodes上面

    5. 通过以下2种方式查看Decommission的状态:

        hadoop dfsadmin -report

        http://10.10.10.101:50070/dfsnodelist.jsp

        正在执行Decommission,会显示:

        Decommission Status : Decommission in progress

        执行完毕后,会显示:

        Decommission Status : Decommissioned
  • 相关阅读:
    MySQL的备份和恢复-mysqldump
    MySQL日志功能详解
    MySQL查询缓存
    MySQL的用户管理
    doc常用命令
    记录mysql语句
    centos常用命令
    centos 7.6
    centos6 常用命令
    centos6.8 安装软件
  • 原文地址:https://www.cnblogs.com/licheng/p/2244804.html
Copyright © 2011-2022 走看看