美文网首页
hadoop集群的可扩展性和负载均衡

hadoop集群的可扩展性和负载均衡

作者: alexlee666 | 来源:发表于2019-10-10 09:44 被阅读0次

    一、hadoop集群的可扩展性

    Hadoop集群具有如下主要特征:

    • 高容错性:数据备份;
    • 高扩展性:增添或者删除DataNode(支持热插拔,即无需重新启动集群),都会通知NameNode及时更新metadata;
    • 数据读写:对于上传到HDFS的文件支持单用户追加写,不支持修改,不支持多用户同时执行写操作;适合一次写入,多次读取的场景。

    因此Hadoop集群:

    • 适用于大文件的批处理;
    • 不适用于大量小文件的实时流处理(大量小文件会占据太多的NameNode内存空间,数据访问延迟较高);

    二、hadoop集群的负载均衡

    2.1 什么是负载均衡

    当向新增或者删除某个DataNode节点时,很容易出现不同DataNode节点的磁盘空间使用率出现不均等情况,比如大多数节点磁盘使用率为基本在30%,但是个别节点磁盘使用率达到90%以上。

    2.2 负载不均衡导致的问题

    比如:MR程序无法很好地利用本地计算的优势,机器之间无法达到更好的网络带宽使用率等等。

    2.3 如何解决负载不均衡问题?

    2.3.1 使用HDFS自带的Balancer

    影响Balancer的两个参数:

    • threshold:
      默认设置:10,参数取值范围:0-100
      参数含义:判断集群是否平衡的阈值。理论上,该参数设置的越小,整个集群就越平衡
    • dfs.balance.bandwidthPerSec:
      默认设置:1048576(1M/S)
      参数含义:Balancer运行时允许占用的带宽

    hdfs-site.xml文件中可以设置数据均衡占用的网络带宽限制:

    <property>
        <name>dfs.balance.bandwidthPerSec</name>
        <value>1048576</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自带的start-balancer.sh脚本可以完成负载的重均衡,示例如下:

    #启动数据均衡,默认阈值为 10%
    $Hadoop_home/bin/start-balancer.sh
    
    #启动数据均衡,阈值 5%
    bin/start-balancer.sh –threshold 5
    
    #停止数据均衡
    $Hadoop_home/bin/stop-balancer.sh
    

    参考:https://community.cloudera.com/t5/Support-Questions/Load-balancing/td-p/107811

    相关文章

      网友评论

          本文标题:hadoop集群的可扩展性和负载均衡

          本文链接:https://www.haomeiwen.com/subject/nnwwpctx.html