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

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,后期有必要再调整
4HDFS集群服务器数量17国家中心和分中心目前计划HDFS集群都是17台服务器
5每台服务器磁盘容量48T固定的,不能变
6每台服务器内容容量256G固定的,不能变
7服务器总的磁盘容量48*17=816T每台服务器内容容量 * HDFS集群服务器数量
8服务器总的内存容量256*17=4352G每台服务器内容容量 *  HDFS集群服务器数量
9数据副本数量2暂定两副本
10每个HRegion中Region的数量350暂定的
11TTL值7776000s90 * 86400s
12HBase中表的Column Family数量1HBase中只有一个表,表中只有一个Column Family
13hbase.hregion.memstore.flush.size 128M单个memstore内存的大小
14hbase.regionserver.global.memstore.size0.45写缓存占用总的Hregionserver堆内存的百分比
15hbase.regionserver.region.split.policyDisabledRegionSplitPolicy禁止Region自动分裂
16每个HRegion中Region的数量350参考上面的计算方式
17Region的总数量5950参考上面的计算方式
18每台HRegion需要占用的内存容量120G参考上面的计算方式
19HMaster内存大小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、现场参数调整

序号

参数名称

默认值

调整前的值

调整后的值

说明

序号

参数名称

默认值

调整前的值

调整后的值

说明

1Xms 128G80G写缓存只需要50G,读缓存使用堆外缓存,所以不需要太大的堆内存
2Xms 128G80G写缓存只需要50G,读缓存使用堆外缓存,所以不需要太大的堆内存
3MaxDirectMemorySize 12G40G增大堆外内存,使用堆外内存作为读缓存
4NewRatio4439限制JVM年轻代大小,年轻代过大会导致GC频率降低,每次GC时间过长
5SurvivorRatio882增加年轻代s0区和s1区大小,防止每次GC复制区过小导致对象提早进入老年代
6hbase.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中。
7hfile.block.cache.size0.40.3015由于读缓存使用堆外缓存存储数据,堆内读缓存只存储数据的Meta,所以降低堆内读缓存
8hbase.regionserver.global.memstore.size0.40.450.6由于整个堆内缓存调小了,但是需要的写缓存不变,所以增加写缓存的比例。
9hbase.ui.blockcache.by.file.max100000100000200000读缓存最多缓存的Block数量,读缓存增大了,自然也把Block的限制调高。
10hbase.bucketcache.size0409636864读缓存大小。使用堆外内存作为读缓存,必须小于MaxDirectMemorySize指定的内存大小
11

hbase.regionserver.optionalcacheflushinterval

3600003600003600000调大Flush周期,避免Flush太频繁,造成过多小文件。
12hbase.hstore.compactionThreshold336触发Minor Compaction需要最小的文件数。
13hbase.hstore.compaction.max101015参与Minor Compaction最多的文件数
14

hbase.regionserver.thread.compaction.small

113执行Minor Compaction的线程池大小
15hbase.regionserver.thread.compaction.large113执行Major Compaction的线程池大小
16

hbase.regionserver.hlog.splitlog.writer.threads

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

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

与组件check项搭配使⽤

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

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
hbase-client-project-2.4.16.jar是一个用于连接HBase数据库的Java客户端项目。HBase是一个分布式、面向列的NoSQL数据库,它可以存储大规模数据,并提供高可靠性和高性能的数据访问。而hbase-client-project-2.4.16.jar则是用来连接HBase数据库的Java客户端库。通过这个库,开发人员可以在Java应用中方便地访问HBase数据库,进行数据的读取、写入和管理操作。 hbase-client-project-2.4.16.jar库提供了丰富的API,使得开发人员可以编写简洁、高效的代码来操作HBase数据库。通过这个库,可以轻松地建立与HBase集群的连接,创建、删除表格,进行数据的增删改查等操作。此外,hbase-client-project-2.4.16.jar也提供了一些高级特性,比如支持过滤器、批量操作、数据版本控制等功能,让开发人员能够更加灵活地利用HBase数据库进行数据处理。 除此之外,hbase-client-project-2.4.16.jar还支持与HBase的安全认证和权限控制,可以保障数据访问的安全性。开发人员可以使用这个库来编写安全的Java应用,确保对HBase数据库的数据进行合法、受控的访问。 总之,hbase-client-project-2.4.16.jar是一个强大、灵活的Java客户端库,为开发人员提供了便捷的方式来连接、操作HBase数据库。无论是小规模的应用还是大规模的数据处理需求,它都能够满足开发人员的要求,帮助他们更有效地利用HBase数据库。 (字数: 258)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值