码迷,mamicode.com
首页 > 其他好文 > 详细

HBase写入快的原因

时间:2018-10-08 15:09:19      阅读:391      评论:0      收藏:0      [点我收藏+]

标签:mit   throws   服务   服务器端   table   构造   src   htable   writer   

技术分享图片

写入:

HBase写可以分为单行写和批量写:

单行写使用了void put(Put put) throws IOException方法

在创建Put对象时使用构造器:

Put(byte[] row) 传入一个行键

并使用add(byte[] famliy,byte[] qualifier)方法指定列族和列名即可

然后调用HTable的put方法就可以提交了

 

HBase客户端提供了一个写缓冲区,可以利用void setAutoFlush(false)来激活缓冲区

如果使用了缓冲区,需要调用void flushCommits()方法来提交

 

客户端获取meta表地址

提交之后,客户端会先向zookeeper获取到meta表的地址:在zk中的/hbase/meta-region-server中

技术分享图片

 

获取到之后会缓存这个地址

根据rowkey获取到要写入的数据所在的region Server,然后缓存这个region Server 的地址

并向服务器请求写入数据

 

服务器端写入:

服务器端接收到数据之后,先将数据写入wal日志中,然后写入memStore中,就会向客户端返回写入成功

这就是HBase写入快的原因

具体详情可以参见:

http://hbasefly.com/2016/03/23/hbase_writer/

 

HBase写入快的原因

标签:mit   throws   服务   服务器端   table   构造   src   htable   writer   

原文地址:https://www.cnblogs.com/tianyafu/p/9753933.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!