HBase

1、防止HBase Region分裂,对HBase预分区的计算公式如下:

       需要Region的总数量 = 每天数据量 * 数据保留时间 / 单个Region数据容量

       每个HRegion中Region的数量 = 需要Region的总数量 / HDFS集群服务器数量

       每台HRegion需要占用的内存容量:每台HRegion中的Region数量 * 表中ColumnFamily的数量 * hbase.hregion.memstore.flush.size / hbase.regionserver.global.memstore.size

2、相关参数列表

序号

参数名称

参数值

备注

1 每天数据量 3T 预估的,实际情况可能有差异
2 数据保留时间 90天 暂定保留90天,可以根据实际情况调整
3 单个Region数据容量 50G 暂定50G,后期有必要再调整
4 HDFS集群服务器数量 17 国家中心和分中心目前计划HDFS集群都是17台服务器
5 每台服务器磁盘容量 48T 固定的,不能变
6 每台服务器内容容量 256G 固定的,不能变
7 服务器总的磁盘容量 48*17=816T 每台服务器内容容量 * HDFS集群服务器数量
8 服务器总的内存容量 256*17=4352G 每台服务器内容容量 *  HDFS集群服务器数量
9 数据副本数量 2 暂定两副本
10 每个HRegion中Region的数量 350 暂定的
11 TTL值 7776000s 90 * 86400s
12 HBase中表的Column Family数量 1 HBase中只有一个表,表中只有一个Column Family
13 hbase.hregion.memstore.flush.size  128M 单个memstore内存的大小
14 hbase.regionserver.global.memstore.size 0.45 写缓存占用总的Hregionserver堆内存的百分比
15 hbase.regionserver.region.split.policy DisabledRegionSplitPolicy 禁止Region自动分裂
16 每个HRegion中Region的数量 350 参考上面的计算方式
17 Region的总数量 5950 参考上面的计算方式
18 每台HRegion需要占用的内存容量 120G 参考上面的计算方式
19 HMaster内存大小 16G 暂定

3、调整方案

当实际情况的数据量大于3T/天的解决方案:

1)、单台Region数据容量不变,增加Region数量,如果增加以后导致每台服务器需要的内存过大或者每台服务器上的Region数量大于400,则建议增加服务器数量

2)、Region数量不变,增加单台Region数据容量,不建议超过100G

当实际情况的数据量小于3T/天的解决方案:

1)、单台Region数据容量不变,减少Region数量。官方推荐单台HRegion中Region的数据量保持在20-200个

2)、Region数量不变,减少单台Region数据容量,不建议低于10G

4、现场参数调整

序号

参数名称

默认值

调整前的值

调整后的值

说明

序号

参数名称

默认值

调整前的值

调整后的值

说明

1 Xms   128G 80G 写缓存只需要50G,读缓存使用堆外缓存,所以不需要太大的堆内存
2 Xms   128G 80G 写缓存只需要50G,读缓存使用堆外缓存,所以不需要太大的堆内存
3 MaxDirectMemorySize   12G 40G 增大堆外内存,使用堆外内存作为读缓存
4 NewRatio 4 4 39 限制JVM年轻代大小,年轻代过大会导致GC频率降低,每次GC时间过长
5 SurvivorRatio 8 8 2 增加年轻代s0区和s1区大小,防止每次GC复制区过小导致对象提早进入老年代
6 hbase.bucketcache.bucket.sizes

5120,9216,17408,

33792,41984,50176,

58368,66560,99328,

132096,197632263168,394240,525312

5120,9216,17408,

33792,41984,50176,

58368,66560,99328,

132096,197632263168,394240,525312

5120,9216,17408,33792,41984,

50176,58368,66560,99328,132096,

197632,263168,394240,525312,

787456,1049600

增加两种Size的Block两种缓存,即768字节和1M大小的Block的缓存。因为线上小于1M的文件都存储在HBase中,所以有大量的大于512字节和小于1M字节的文件存储在HBase中。
7 hfile.block.cache.size 0.4 0.3 015 由于读缓存使用堆外缓存存储数据,堆内读缓存只存储数据的Meta,所以降低堆内读缓存
8 hbase.regionserver.global.memstore.size 0.4 0.45 0.6 由于整个堆内缓存调小了,但是需要的写缓存不变,所以增加写缓存的比例。
9 hbase.ui.blockcache.by.file.max 100000 100000 200000 读缓存最多缓存的Block数量,读缓存增大了,自然也把Block的限制调高。
10 hbase.bucketcache.size 0 4096 36864 读缓存大小。使用堆外内存作为读缓存,必须小于MaxDirectMemorySize指定的内存大小
11

hbase.regionserver.optionalcacheflushinterval

360000 360000 3600000 调大Flush周期,避免Flush太频繁,造成过多小文件。
12 hbase.hstore.compactionThreshold 3 3 6 触发Minor Compaction需要最小的文件数。
13 hbase.hstore.compaction.max 10 10 15 参与Minor Compaction最多的文件数
14

hbase.regionserver.thread.compaction.small

1 1 3 执行Minor Compaction的线程池大小
15 hbase.regionserver.thread.compaction.large 1 1 3 执行Major Compaction的线程池大小
16

hbase.regionserver.hlog.splitlog.writer.threads

3 3 5 Hlog分割时使用的线程数
17 hbase.regionserver.handler.count 30 30 200 处理客户端RPC请求的线程数
18 hbase.regionserver.maxlogs 32 32 800 Wal文件大小的最大值,达到最大值以后会触发整个RegionServer 的Memstore Flush
19 hbase.hstore.blockingStoreFiles 10 10 30 某个Store的Hfile数量超过了这个参数的限制 会阻塞该Store写入hbase.hstore.blockingWaitTime 指定的时间

对应Ambari中的具体配置项目:

与组件check项搭配使⽤

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

默认1:5,为0.2
1:40 为0.025,⽼年代为39

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

 

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

Hbase基于生产环境调优---附ambari对应参数

 

 

 

 

 

 

 

相关文章:

  • 2021-10-29
  • 2021-12-08
  • 2021-09-18
  • 2021-07-14
  • 2021-12-28
  • 2021-05-23
  • 2021-06-18
猜你喜欢
  • 2021-04-21
  • 2021-05-29
  • 2022-12-23
  • 2021-05-14
  • 2021-10-18
  • 2021-09-28
  • 2021-10-16
相关资源
相似解决方案