[HBase] HBase client-side buffer 客户端缓存
来源:互联网 发布:mysql 最近10天 编辑:程序博客网 时间:2024/05/16 05:47
HBase Client 通过table.put(Put put)方法向Server端写数据,默认情况下,每次调用table.put()方法 ,就会触发一次RPC将数据提交到Server端
在批量写数据的情况下,过多的时间都浪费在RPC上了。
HBase Table 类提供了一个setAutoFlush(boolean) 方法,能够控制是否开启client side buffer(客户端缓存,其大小由hbase.client.write.buffer表示,可以在hbase-site.xml中设置,默认为2MB)
默认情况下,table.isAutoFlush()值为true,即未启用客户端缓存。开启缓存后,table.flushCommits()会触发RPC将缓存数据写到Server端,table.close 及缓存达到hbase.client.write.buffer阀值都会隐士调用flushCommits()。
System.out.println(table.isAutoFlush()); table.setAutoFlush(false); table.setWriteBufferSize(8*1024*1024); System.out.println(table.getWriteBufferSize()/1024/1024+"MB");
client.buffer.size大小的设定要恰当,太小了会频繁调用RPC向Server(s)写数据,太大了会增加Server端内存开销。
首先,Write Buffer存在于客户端的本地内存中,那么当客户端运行出现问题时,会导致在Write Buffer中未提交的数据丢失;由于HBase服务端还未收到这些数据,因此也无法通过WAL日志等方式进行数据恢复。
其次,Write Buffer方式本身会占用客户端和HBase服务端的内存开销,具体见下节的详细分析。
预估WriteBuffer内存开销
客户端通过Write Buffer方式提交的话,会导致客户端和服务端均有一定的额外内存开销,Write Buffer Size越大,则占用的内存越大。客户端占用的内存开销可以粗略地使用以下公式预估:
hbase.client.write.buffer * number of HTable object for writing
而对于服务端来说,可以使用以下公式预估占用的Region Server总内存开销:
hbase.client.write.buffer * hbase.regionserver.handler.count * number of region server
其中,hbase.regionserver.handler.count为每个Region Server上配置的RPC Handler线程数。
- [HBase] HBase client-side buffer 客户端缓存
- HBase Client客户端数据管理软件
- HBase client buffer put为空 HTable
- HBase如何合理设置客户端Write Buffer
- HBase如何合理设置客户端Write Buffer
- HBase如何合理设置客户端Write Buffer
- HBase如何合理设置客户端Write Buffer
- HBase如何合理设置客户端Write Buffer
- HBase如何合理设置客户端Write Buffer
- HBase如何合理设置客户端Write Buffer
- HBase Client
- Hbase客户端
- HBase中应该如何合理设置客户端Write Buffer
- HBase Client: Delete Method
- HBase client总览
- hbase java client 操作
- hbase-java-client
- Hbase Client Test Case
- TCP/IP详解学习笔记(9)-TCP协议概述 .
- SOA介绍
- 曼德罗伯特集代码
- TCP/IP详解学习笔记(10)-TCP连接的建立与中止 .
- HIVE sql 学习笔记(1)
- [HBase] HBase client-side buffer 客户端缓存
- XPCOM指南-5_使用XPCOM实用工具简化你的生活
- MD5加密
- IT外企那点儿事——转自博客园作者觉先
- 有梦想,就会有奇迹—读《我用微软改变世界》有感
- Linux tcpdump命令详解
- 拓扑排序中的栈存储结构
- Android NDK具体作用讲解
- HIVE 基本语法