HBase 学习一: 客户端写缓冲区 autoFlush
来源:互联网 发布:文件收发管理系统源码 编辑:程序博客网 时间:2024/04/28 19:02
HBase的表操作,默认情况下客户端写缓冲区是关闭的,即table.isAutoFlush() = true, 这种情况下,对表的单行操作会实时发送到服务端完成。
因此,对于海量数据插入,修改,RPC通信频繁,效率比较低。这种场景下,可以通过激活客户端缓冲区,批量提交操作请求,提高操作效率。
下面是一个简单的关于autoFlush的测试代码:
public static void autoFlushTest(){HTable table;try {table = new HTable(conf, "test3");//默认是不激活,实时提交服务端处理请求.System.out.println("=====auto flush:" + table.isAutoFlush()); if (table.isAutoFlush())table.setAutoFlush(false); //激活缓冲区System.out.println("=====auto flush2:" + table.isAutoFlush());Put put = new Put(Bytes.toBytes("r1"));put.add(Bytes.toBytes("colf2"), Bytes.toBytes("q1"), Bytes.toBytes("v3"));put.add(Bytes.toBytes("colf2"), Bytes.toBytes("q2"), Bytes.toBytes("v4"));table.put(put);// 当setAutoFlush=false时,只有当缓冲区满或调用table.close()时// 或调用table.flushCommits()时//客户端才会将table操作提交服务端执行。//table.flushCommits();table.close();System.out.println("=====auto flush4:" + table.isAutoFlush());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
缺点是如果程序崩溃,在缓冲区内的数据将会丢失,无法完成表操作。
0 0
- HBase 学习一: 客户端写缓冲区 autoFlush
- Hbase客户端的写缓冲区和put列表
- Hbase客户端的写缓冲区和put列表
- Hbase-API-KeyValue、写缓冲区
- HBase学习(一)hbase安装(单机模式)和javaapi客户端访问hbase例子
- Hbase 学习笔记(一): 基础客户端API
- HBase 客户端API --写的工具类
- Hbase学习总结一
- Hbase学习笔记一
- HBASE学习一
- HBase学习(一)
- C# autoflush
- Hbase深入学习(一) 什么是hbase
- HBase学习笔记(一)HBase数据模型
- HBase源码学习 客户端scan过程
- Hbase学习笔记(一)
- hbase 学习笔记一---基本概念
- HBase学习笔记(一)
- STM32相关(基于libopencm3库)
- 一步步教你为网站开发Android客户端
- 控件笔记之鸡啄米
- linux添加环境变量的方法总结
- Android 调用WebAPI
- HBase 学习一: 客户端写缓冲区 autoFlush
- android bitmap 缓存工具类
- Centos设置静态IP
- c++基础学习3-c++中的函数a
- Cocos2dx 配置的环境需求
- 动态规划:矿工模型
- my_itob
- POJ 2451 Uyuw's Concert
- TortoiseSVN日常使用指南