记一次HBase写入优化测试

举报
穆生生 发表于 2021/02/26 15:21:44 2021/02/26
【摘要】 HBase提高写入速度参数配置-测试案例

业务环境中,如果有大批量的Hbase写需求,可以根据服务器资源情况进行一定的调整,优化参数

  • 调整HMasterRegionServer进程的堆内存大小

Hbase Master Maximum MemoryHbase RegionServer Maximum Memory主要控制MasterRegionSserver能够使用的内存大小,根据需求适当调整大小。在此次测试环境中都调整为32G

 

 

  • 调整读、写缓冲区大小

调整RegionServer的读和写缓冲区的大小,此处0.440%,读写缓存的总和控制在80%以内,否则可能造成Hbase无法启动的情况。

根据写需求,可加大Hbase.regionserver.global.memstore.size的比例

 

 

默认读写缓存比例值都为40%

测试环境中主要是为提高写速度,所以读调整为10%,写调整为70%

 

  • 调整memstoreflush size

Flush Size控制Memstore的超过一定至,就进行Flush刷新,如果创建Hbase表未创建,系统默认参数一遍为128M,在写入请求多的情况下,可调整至256MB

 

  • 调整HBase Region Block Multipiler参数配置

默认值为2,如果memstore的内存大小已经超过了hbase.hregion.memstore.flush.size2倍,则会阻塞memstore的写操作,直到降至该值以下,为避免发生阻塞,最好调大该值,比如:48


本次测试环境中调整为8

 

  • 调整Number of Handlers Per RegionServer参数配置

每个RegionServer开启的RPC监听程序的总数,默认值为100,如果写入的进程多,可适当加大数量


本次调整为当前版本最大值240

 

  • custome hbase-site中修改或添加如下配置

设置hbase.hstore.flusher.count8

设置hbase.regionserver.thead.compaction.small10

  • 采用预分区方式创建HBase

n_splits=100

create 'test_lp01',{NAME=>'info',VERSIONS=>'1',COMPRESSION=>'NONE',BLOOMFILTER => 'NONE',BLOCKSIZE=>'8192',IN_MEMORY=>'true'},{SPLITS=>(1..n_splits).map{|i|"user#{1000+i*(9999-1000)/n_splits}"}}

  • 使用YCSB工具执行纯写入操作,在写入的时候关闭HBaseWAL

./bin/ycsb load hbase10 -P  ./workloads/workloada_insert -p columnfamily=info  -p threadcount=100 -p table=test_lp01 -p durability=SKIP_WAL   -p recordcount=10000000 –s

机器配置:

物理机

内存:512GB

处理器:32

磁盘:HDD

 

HBase中写入1千万条数据,每条数据1K大小,写入性能结果如下:

Min=158, Avg=1922.58, 90=4175, 99=5775, 99.9=17647, 99.99=236287]

[OVERALL], RunTime(ms), 242936.0

[OVERALL], Throughput(ops/sec), 41163.104686007835

[TOTAL_GCS_PS_Scavenge], Count, 428.0

[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 2017.0

[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.830259821516778

[TOTAL_GCS_PS_MarkSweep], Count, 0.0

[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0.0

[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.0

[TOTAL_GCs], Count, 428.0

[TOTAL_GC_TIME], Time(ms), 2017.0

[TOTAL_GC_TIME_%], Time(%), 0.830259821516778

[CLEANUP], Operations, 200.0

[CLEANUP], AverageLatency(us), 621.21

[CLEANUP], MinLatency(us), 1.0

[CLEANUP], MaxLatency(us), 122303.0

[CLEANUP], 95thPercentileLatency(us), 24.0

[CLEANUP], 99thPercentileLatency(us), 67.0

[INSERT], Operations, 1.0E7

[INSERT], AverageLatency(us), 2411.8575726

[INSERT], MinLatency(us), 158.0

[INSERT], MaxLatency(us), 356351.0

[INSERT], 95thPercentileLatency(us), 5451.0

[INSERT], 99thPercentileLatency(us), 6511.0

[INSERT], Return=OK, 10000000

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。