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写入有哪些可以提高性能的点:

  1. Put是否批量提交(通过批量提交可以减少客户端与RegionServer的RPC连接,提高性能)

  2. Put是否可以异步批量提交(如果可以接受少量数据丢失可以执行异步提交,一般业务都不允许)

  3. Region数量是否太少(如果Region数量小于regionserver的数量,则需要对region进行切分了)

  4. 写入请求是否不均衡(即热点问题,如果写入不均衡则会由于单个节点负载高而拖慢整个集群)

  5. hbase.hregion.max.filesize(单个region的大小,如果设置过小会进行split操作,影响性能)

  6. hbase.regionserver.handler.count(regionserver支持的请求现场数量,需要合理调节)

  7. 写入的kv数据是否太大(kv太大会导致HLog、flush、compaction频繁触发,写入性能下降)

  8. Memstore的设置是否合理,以及hbase.regionserver.global.memstore.upperLimit属性是否合理(该属性会导致region级别的memstore flush)

  9. Store中HFile的数量是否大于配置的blockingStoreFile(如果数据写入很快,flush后store的文件数大于该值,系统会强制进行compaction进行文件合并,阻塞整个store的写入。)

通过你的描述,你也做了一定的优化操作了,你可以关注一下是否存在热点问题,相关配置是否还有调整的空间。  建议你关注一下regionserver的日志,看是否有大延时的flush、split、compaction等日志。

祝好运~

1
0

HBase+Spring Boot实战分布式文件存储(OpenTSDB实战升级)

深入浅出讲解HBase,让你轻松处理海量数据

493 学习 · 167 问题

查看课程