HBase如何实现write写入优化_云数据库HBase版

阿里云帮助中心 · · 821 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

HBase基于LSM模式,写是写HLOG及Memory的,也就是基本没有随机的IO,所以在写链路上性能高效还比较平稳。很多时候,写都是用可靠性来换取性能。

批量写

也是为了减少rpc的次数

HTable.put(List<Put>)

Auto Flush

autoflush=false可以提升几倍的写性能,但是还是要注意,直到数据超过2 M(由hbase.client.write.buffer决定)或用户执行了hbase.flushcommits()时才向regionserver提交请求。需要注意并不是写到了远端。

HTable.setWriteBufferSize(writeBufferSize)可以设置buffer的大小。

服务端优化

WAL Flag

不写WAL可以成倍提升性能,因为不需要写HLog,减少3次IO,写MemStore是内存操作。

是以数据可靠性为代价的,在数据导入时,可以关闭WAL。

增大memstore的内存

当前可以调高Memstore 的数值,降低 BlockCache的数,跟读优化的思路正好相反。

大量的HFile产生

如果写很快,很容易带来大量的HFile,因为此时HFile合并的速度还没有写入的速度快。

需要在业务低峰期做majorcompaction,充分利用系统资源。如果HFile降低不下来,则需要添加节点。

本文来自:阿里云帮助中心

感谢作者:阿里云帮助中心

查看原文:HBase如何实现write写入优化_云数据库HBase版

821 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传