我的6节点hbase集群有以下硬件配置(1个主节点-5个从节点)
每个节点的配置
2.4ghz,48核intel cpu
256gb内存
1gb/ps网络连接
30 x ssd磁盘(jbod设置)
操作系统:rhel 6.6
糖化血红蛋白version:1.2.0
cdh分布:5.7.0
我已在hbase中调整了以下参数:
hbase.client.write.buffer: 64MB
hbase.regionserver.handler.count: 64
master_region_java_heapsize: 125GB
hbase.client.scanner.caching: 10000
hbase.hregion.memstore.flush.size: 8GB
hbase.hregion.max.filesize:100GB
通过这种设置,我可以在250个线程上使用ycsb获得85000 iops,50%读写。
有谁能给我建议一些配置上的改变,帮助我产生更多的iops吗。
1条答案
按热度按时间hxzsmxv21#
了解更多有关设置的详细信息会有所帮助(分布、操作系统、群集状态、存储等)
另外,你的目标是在ycsb更好的数字。
浏览一下您的配置,我觉得如果您有快速存储(ssd、ramdisk等),网络将会饱和。
总的来说,我会说坚持基本原则。
对资源进行良好的监控
识别并理解瓶颈
优化
以下是一些可能对您有所帮助的内容:
我希望你已经通读了关于绩效的正式文件,如果没有的话[1]。
为hbase调优jvm(特别是gc)有一个很好的方法[2] [3] [4]
在apachehbase博客中,hdd、ssd和ram磁盘之间有一个有趣的性能比较[5]
[1] https://hbase.apache.org/book.html#performance
[2] http://blog.cloudera.com/blog/2014/12/tuning-java-garbage-collection-for-hbase/ [3] https://software.intel.com/en-us/blogs/2014/06/18/part-1-tuning-java-garbage-collection-for-hbase [4] http://product.hubspot.com/blog/g1gc-tuning-your-hbase-cluster
[5] https://blogs.apache.org/hbase/entry/hdfs_hsm_and_hbase_part
[6] 奖励视频!-https://vimeo.com/127778854