HBase写入快的原因
Posted tianyafu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase写入快的原因相关的知识,希望对你有一定的参考价值。
写入:
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写入快的原因的主要内容,如果未能解决你的问题,请参考以下文章