美文网首页
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