【精】HDFS Balancer原理、参数详解

1. 前言:

Hadoop集群长时间运行以后,我们有可能会发现这样一种现象:Datanode节点间的数据不平衡,有的节点使用率很高,有的节点使用率很低。出现这种状况,我们一般采用HDFS自带的balancer工具来解决,保证每个节点的数据分布均衡。

2. balancer的设计目标

  1. 在集群范围内均衡各datanode的数据。
  2. 在不影响正常集群活动和运行任务的前提下持续缓慢运行。

3. 使用场景

  1. 清理使用率高dn。将使用率很高的dn数据迁移掉减轻它的压力。
  2. 新增dn。新增的dn都是没有数据的,需要尽快把它用起来。
  3. 在维护窗口或集群负载低时高速运行。

4. 导致节点间数据不均衡可能的原因

新增dn后

新增dn后,新创建块会渐渐写到这些dn,但是已经存在的块不会移动,除非使用balancer

客户端行为

客户端在写入数据时,可能更偏向某些机器(热点),如HBase。dn在直接从客户端收到数据时,会在本地保存一个副本(数据本地性)。经常接收数据的dn通常有更高的存储使用率

HDFS块分配方式

HDFS块分配方式是约束满足算法,HDFS会随机从满足条件的存储设备中分配块。均匀随机分配可能不会导致均匀数据分布,当集群越满,这个问题越严重

5. balancer相关参数<

你可能感兴趣的:(HDFS全方位实战,hdfs,hadoop,big,data)