Hadoop自由实现伸缩节点详细说明-Hadoop商业环境实战

本套技术专栏是作者(秦凯新)平时工作的总结和升华,通过从真实商业环境抽取案例进行总结和分享,并给出商业应用的调优建议和集群环境容量规划等内容,请持续关注本套博客。QQ邮箱地址:1120746959@qq.com,如有任何学术交流,可随时联系。

1 节点扩容

  • 配置/etc/hosts添加新节点的IP和主机名

  • 配置etc/hadoop/slaves添加新节点的主机名

  • 配置hdfs-site.xml,设置节点平衡带宽设置(默认值1M,下面设置为10M)

       <property>
              <name>dfs.datanode.balance.bandwidthPerSec</name>
              <value>20971520</value>
      </property>
    
  • 在新节点上执行datanode

      hadoop-daemon.sh start datanode
    
  • 数据平衡,让各个DataNode中的数据均匀分布,threshold是平衡阈值,默认值允许10%的差异,值越小越平衡,但花费的时间会越长,平衡时先通过NameNode提供的元数据进行平衡规划,然后开启多线程将数据从老节点移到新节点。

     start-balancer.sh -threshold 5
    
  • 设置平衡时使用的网络带宽(字节/秒),在网络带宽受限的情况下,平衡速度较慢,需要耐心等待一段时间才能观察到效果

      hdfs dfsadmin -setBalancerBandwidth20971520
    

2 节点缩容

  • 在namenode中打开hdfs-site.xml,设置节点排除文件的位置(必须是绝对路径),在excludes文件中添加要排除的节点主机名,一行一个

      <property>
              <name>dfs.hosts.exclude</name>
              <value>/usr/local/hadoop/etc/hadoop/excludes</value>
      </property>
    
  • 更新节点配置,然后在Hadoop站点上很快就能看到Decommission正在进行,此时NameNode会检查并将数据复制到其它节点上以恢复副本数(要移除的节点上的数据不会被删除,如果数据比较敏感,要手动删除它们)

    NameNode中执行下面命令,强制重新加载配置:

          hdfs dfsadmin -refreshNodes
    
  • 查看资源汇报情况

      hdfs dfsadmin -report
    
  • 等状态变成Decommissioned后就可以关闭这个节点了,可在要移除的节点上运行相应的关闭命令,几分钟后,节点将从Decommissioned进入Dead状态。

      hadoop-daemon.sh stop datanode
    
  • 更新集群配置(所有节点同步)

      NameNode的excludes文件及slaves文件、hosts文件中去掉已经移除的主机名。
    

总结

最近需要进行集群资源规划,不得进行Hadoop伸缩节点。

秦凯新 于深圳

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值