Hbase客户端的写缓冲区和put列表

HBase客户端使用写缓冲区提高效率,通过设置autoFlush控制flush时机。默认关闭,可通过setAutoFlush(false)开启。当达到设定大小或调用flushCommits()时,数据发送至服务器。默认写缓冲区2M,可调整。put列表操作时,若某Put失败,其前成功Put仍会被添加到缓冲区。get列表失败会导致整个操作失败。
摘要由CSDN通过智能技术生成

写缓冲区

HBase每次的put操作,都是一次rpc操作,如果某个应用程序每秒钟有1000+的put操作,那显然是不合适的。

HBase的客户端API中配置了一个写缓冲区,缓冲区负责收集put操作,达到一定条件后,调用一次rpc操作,将全部的缓冲数据发送到服务器端。

    void setAutoFlush(boolean autoFlush)

    boolean isAutoFlush()

默认情况下,写缓冲区是关闭的,可以通过setAutoFlush(false)来打开写缓冲区。

可以通过isAutoFlush()来判断当前写缓冲区的开关状态。

如果需要强制性的将数据发送到服务器端,可以通过:

    void flushCommits() throws IOException

可以将所有缓冲的数据发送到服务器端。


每个HBase客户端默认的写缓冲区大小是2M,可以通过:

    long getWriteBufferSize()

    void setWriteBufferSize(long writeBufferSize) throws IOException

配置写缓冲区的大小。

2M的缓冲区一般比较合适,如果存储的是视频数据,例如是720P或者1080P的视频数据,那么数据的传输时间占了大部分的请求时间,所以此时缓冲区的作用就不大了(缓冲区的大小最好根据实际测试结果进行调整)。

缓冲区在两种情况下会flush到服务端:

    ①显示调用flushCommits()

    ②隐式flush

    即在客户端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值