我试图建立与凤凰二级指标。索引创建需要几个小时。这似乎是因缓慢HBase的扫描,因为我注意到以下性能:
- 我可能需要2个小时扫描表,而其他开发商报道几分钟较大的表(100百万行)。
- HBase外壳可以计算大约一行。每秒10.000的速率,这意味着3800s(> 1小时!)来计算该表的所有行。
这两个都带有HBase shell和一个Java扫描器。
注意:GET(通过rowkey)操作可以获得良好的性能(大约0.5s)。
语境
- 38个百万行/列1000 /单柱族/ 96Go与GZ压缩。
- 集群有5个区域服务器的6个节点(126Go RAM,24个核心)。
- Hortonworks数据平台2.2.0
故障排除
基于HBase的书(http://hbase.apache.org/book.html#performance),这里是我已经签:
1)硬件
- IO(d ISK)
- NMON说磁盘是永不占线的80%以上,而最常见的0至20%
- 前说,HBase的JVM的不交换(选中2 5的RS)
- IO (网络):在同一个交换机上的每个节点的主动接口架(所有第二无源接口被堵塞不同的交换机上)
2)JVM
- GC暂停OK(几毫秒暂停每分钟左右)
- 堆看起来不错(不见顶太长接近涨停)
- CPU是令人惊讶LOW:从来没有超过10%
- 主题:
- 活动线程(10“RpServe.reader = N”+其他几个)不显示冲突
- 很多停放线程无所作为(60“DefaultRpcServer。处理机= n”的,约15之外)
- 没有任何线程状态
3)数据
- 使用蜂房+ completebulkload装载散装。
- IPC客户端的巨大的名单区域数量:
- 13个区域意味着我们每个RS有2到3个大区域,这就是e xpected。
- 强制重大压缩后扫描性能保持不变。
- 区域大小相当均匀:4,5Go(+/- 0.5)为11个区域,2,5Go 2个区域
4)HBase的配置
大多数配置保持不变。
- HBase的ENV仅表示端口JMX控制台
- HBase的现场有一些设置凤凰
一些看起来OK我
- hbase.hregion的则params的.memstore.block.multiplier
- hbase.hregion.memstore.flush.size:134217728 bytes(134Go) XMX的
- XMN比:0.2 XMN最大值:512 MB X毫秒:6144米
- hbase.regionserver.global.memstore.lowerLimit:0.38
- hbase.hstore.compactionTreshold:3
- hfile.block.cache .size:0.4(块缓存大小,堆%)
- 最大HStoreFile(hbase.hregion.max.filesize):10走(10737418240)
- 客户端扫描缓存:100行饲养员超时:30秒
- 客户端最大keyvalue大小:10mo
- hbase.regionserver.global.memstore.lowerLimit:0.38
- hbase.regionserver.global.memstore.upperLimit:0.40
- hstore阻断storefiles:10
- hbase.hregion.memstore.mslab.enabled:
- 启用hbase.hregion.majorcompaction.jitter:0.5
尝试以下而不对性能产生任何影响的配置更改
- hbase-env。SH:试图增加HBASE_HEAPSIZE = 6144(因为它在默认1000)
- HBase的-site.xml中:
- hbase.ipc.server.callqueue.read.ratio:0.9
- hbase.ipc.server .callqueue.scan.ratio:0.9
5)日志说什么有用的
猫HBase的-H base-master-cox.log | grep“2015-05-11。* ERROR”
cat hbase-hbase-regionserver - *。log | grep的 “2015年5月11日* ERROR”
打印什么
打印警告显示非相关的错误
2015年5月11日17:11:10544警告[B.DefaultRpcServer.handler = 8 ,queue = 2,port = 60020] shortcircuit.ShortCircuitCache:ShortCircuitCache(0x2aca5fca):由于InvalidToken异常,无法加载1074749724_BP-2077371184-184.10.17.65-1423758745093。
2015-05-11 17:09:12,848 WARN [regionserver60020-smallCompactions-1430754386533] hbase.HBaseConfiguration:配置选项“hbase.regionserver.lease.period”已弃用。相反,使用“hbase.client.scanner.timeout.period”
感谢。我已经尝试过你没有影响的建议(关闭块缓存,将缓存设置为10.000.000,验证记录由最小2k列组成(小于30个字符),所以平均值为60Ko)。我有11个地区,9个是4.5Go,2个是2.5Go。 – Martin