一:hbase现有硬件资源的理论性能
1.集群容量规划公式:
优化调整,发挥硬件的最大优势;
Disk Size / Java Heap=RegionSize / MemstoreSize * ReplicationFactor * HeapFractionForMemstore *2
按照默认配置,
- RegionSize = 10G,对应参数为hbase.hregion.max.filesize;
- MemstoreSize = 128M,对应参数为hbase.hregion.memstore.flush.size;
- ReplicationFactor = 3,对应参数为dfs.replication;
- HeapFractionForMemstore = 0.4,对应参数为hbase.regionserver.global.memstore.lowerLimit;
推导公式;
- 硬盘容量纬度下Region个数:
Disk Size / (RegionSize * ReplicationFactor) - Java Heap纬度下Region个数:
Java Heap * HeapFractionForMemstore / (MemstoreSize / 2 )
Disk Size / (RegionSize * ReplicationFactor) = Java Heap * HeapFractionForMemstore / (MemstoreSize / 2 )
=> Disk Size / Java Heap = RegionSize / MemstoreSize * ReplicationFactor * HeapFractionForMemstore * 2
2.hbase对于cpu要求高,越多core越好
3.软硬件独立的hbase集群
其他硬件配置,
- 集群使用万兆网卡(千兆对于大数据集群来说实在太小,很容易打满,影响较大),
- 磁盘尽可能大,
- 内存不用太高,一般128G就已经特别多了HBase本身对内存的需求并不是配的越大越好。
- CPU核数越多越好,HBase本身压缩数据、compaction线程等都是很吃CPU资源的。
二:hbase现集群调优参数
| 属 性 值 | cdh集群现有 | 集群效果 |
|---|---|---|
| hbase.hstore.blockingStoreFiles | 100 | HStore的storeFile的文件数大于配置值, |
| 则在flush memstore前先进行split或者compact, | ||
| 除非超过 | ||
| hbase.hstore.blockingWaitTime配置的时间, | ||
| 默认为7,可调大,比如:100, | ||
| 避免memstore不及时flush,当写入量大时, | ||
| 触发memstore的block,从而阻塞写操作。 | ||
| cachecompress | FALSE | 开启cache的压缩, |
| 50% increase in throughput | ||
| and 30% improvement in mean latency while, | ||
| increasing garbage collection by 80% | ||
| and increasing overall CPU load by 2% | ||
| hbase.regionserver.thread.compaction.small | 5 | 压缩的线程数,增加压缩性能。 |
| hbase.hregion.memstore.flush.size | 256 | 当前系统flush比较频繁,并且内存资源比较充足, |
| 可以适当将该值调整为256M。避免频繁的flush | ||
| hbase.hstore.compactionThreshold | 5 | 有五个store file就触发compact操作, |
| 减少压缩队列。 | ||
| HBase HRegion 最大化压缩 | 0 | 禁止自动大合并(时间长,耗费资源), |
| hbase.hregion.majorcompaction | 业务低峰期进行手动合并。 | |
| GC-region server配置(JDK1.7) | -XX:+UseG1GC | G1日志打印: |
| -XX:MaxGCPauseMillis=100 | -verbose:gc | |
| -XX:InitiatingHeapOccupancyPercent=70 | -XX:+PrintGC | |
| -XX:G1HeapRegionSize=16m | -XX:+PrintGCDetails | |
| -XX:+ParallelRefProcEnabled | -XX:+PrintGCApplicationStoppedTime | |
| -XX:+UnlockExperimentalVMOptions | -XX:+PrintHeapAtGC | |
| -XX:-ResizePLAB | -XX:+PrintGCDateStamps | |
| -XX:+PrintAdaptiveSizePolicy | ||
| -XX:+PrintTenuringDistribution | ||
| -XX:+PrintSafepointStatistics | ||
| -XX:PrintSafepointSt |

本文详细探讨了HBase集群的硬件资源理论性能,包括集群容量规划公式、CPU需求和软硬件独立集群的配置建议。接着,介绍了HBase集群的调优参数,如Memstore大小和Region个数的计算。此外,还根据实际业务场景提出了冷热数据处理、数据读写比例调整、Bloom Filter应用和GC优化等策略,以提升HBase的读写性能和整体效率。
最低0.47元/天 解锁文章
789

被折叠的 条评论
为什么被折叠?



