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
  • 相关阅读:
    如何自动生成参考文献格式
    VS2010+OpenCV 项目生成EXE文件如何在其他电脑上直接运行
    从多核CPU Cache一致性的应用到分布式系统一致性的概念迁移
    【译】为什么永远都不要使用MongoDB Why You Should Never Use MongoDB
    团队技能提升的二三事儿
    从微信朋友圈的评论可见性,谈因果一致性在分布式系统中的应用
    我所认为的软件可靠性的三重境界
    Redis核心原理与实践--事务实践与源码分析
    Redis核心原理与实践--Redis启动过程源码分析
    选择SaaS平台的那些事
  • 原文地址:https://www.cnblogs.com/licheng/p/2244804.html
Copyright © 2011-2022 走看看