Hbase性能调优

本文探讨了Hbase的性能调优,重点关注client端的配置。内容包括:在StoreFile过大导致Split操作时如何调整参数;增加compaction的触发条件以减少compaction次数,但需注意内存消耗;调整客户端写buffer的flush策略;优化regionserver的IO请求线程数和hlog数量,以及如何设置HStoreFiles数量以避免写入阻塞。这些调整有助于提升Hbase的运行效率。
摘要由CSDN通过智能技术生成

client端


HTable.setAutoFlush(false) 关闭客户端自动刷新
HTable.setWriteBufferSize(writeBufferSize)
设置HTable客户端的写buffer大小,与上面的参数配合使用。当达到设置的writeBufferSize时,才会触发提交到服务端的请求。(不适合实时读写业务)
Put.setWriteToWAL(false) 关闭WAL日志
客户端向集群中的RegionServer提交PUT数据时,首先会先写WAL(Write Ahead Log)日志(即HLog),只有当WAL日志写成功后,再接着写MemStore,然后客户端被通知提交数据成功;如果写WAL日志失败,客户端则被通知提交失败。这样做的好处是可以做到RegionServer宕机后的数据恢复。
关闭WAL可提升写入性能,但是一旦RegionServer宕机,Put的数据将会无法根据WAL日志进行恢复。
批量PUT(put(List)),多线程写入。根据业务选择。
在spark写入hbase时,可以使用Mapreduce的方式,具体参考api saveAsHadoopDataset。

server端
server端写入数据流程

从zookeeper中的meta表获取region信息,根据表名,rowkey找到对应的regionserver。
数据写到HLog(参考client端的关闭WAL日志操作)和Memostore
MemStore达到一个阈值后则把数据刷成一个StoreFile文件。若MemStore中的数据有丢失,则可以总HLog上恢复 <
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值