hbase put 慢,有什么地方需要优化的
来源:4-1 HBase优化策略一:服务端优化策略

whj_DB9
2019-05-07
目前客户端 已经每1000条 putlist,table autoflush=false,writebuffersize=5
服务端regionserver memory=60g,handlers=125,memstoreflush size =256m
hstore blocking storefiles=100
集群数为10,region数为每台400,线程为7 每个线程大概处理1.5w数据为10-20s,想问一下老师有什么地方还可以调整优化
1回答
-
叁金
2019-05-09
我们先来看一下HBase写入有哪些可以提高性能的点:
Put是否批量提交(通过批量提交可以减少客户端与RegionServer的RPC连接,提高性能)
Put是否可以异步批量提交(如果可以接受少量数据丢失可以执行异步提交,一般业务都不允许)
Region数量是否太少(如果Region数量小于regionserver的数量,则需要对region进行切分了)
写入请求是否不均衡(即热点问题,如果写入不均衡则会由于单个节点负载高而拖慢整个集群)
hbase.hregion.max.filesize(单个region的大小,如果设置过小会进行split操作,影响性能)
hbase.regionserver.handler.count(regionserver支持的请求现场数量,需要合理调节)
写入的kv数据是否太大(kv太大会导致HLog、flush、compaction频繁触发,写入性能下降)
Memstore的设置是否合理,以及hbase.regionserver.global.memstore.upperLimit属性是否合理(该属性会导致region级别的memstore flush)
Store中HFile的数量是否大于配置的blockingStoreFile(如果数据写入很快,flush后store的文件数大于该值,系统会强制进行compaction进行文件合并,阻塞整个store的写入。)
通过你的描述,你也做了一定的优化操作了,你可以关注一下是否存在热点问题,相关配置是否还有调整的空间。 建议你关注一下regionserver的日志,看是否有大延时的flush、split、compaction等日志。
祝好运~
10
相似问题