HBase 1.0.0 API的变化
来源:互联网 发布:sql注入绕过安全狗 编辑:程序博客网 时间:2024/05/01 10:48
这是一篇译文,原作者为carterp@google.com。
为什么有接口变化
- 把用户所需(功能)与(这些功能)如何递送区分开来(Separate what a user needs from how it’s delivered)
- 释放实现,实现能够单独演化
- 使注入客户代码变得容易(如基准测试,数据装饰等)
API变化初瞥
- 连接管理已经移到类ConnectionFactory
- 新增接口:Connection,Table,RegionLocator,和Admin
- 原始构造函数被标记为过时以支持工厂方法
一些冗余被清理:清理了一些不增加功能的重载函数
如何使用它呢--新的做法:
对象生命周期 接口Connection
Table, Admin, RegionLocator
重量级重轻创建代价高昂廉价线程安全性是否使用方法进程内创建一个并共享单线程上下文中随需创建
- 表现在只能用TableName,而不是String或byte[]
- 没有了tableNameOrRegionName参数
表上的数据操作:
- Result get(Get get)
- ResultScanner getScanner(Scan scan)
- void put(Put put)
- void delete(Delete delete)
还有其它有条件的修改,批操作,协程服务代用等。
Region信息: RegionLocator
- HRegionLocation getRegionLocation(final byte [] row)
- Pair<byte[][],byte[][]> getStartEndKeys()
以及一些以上调用的变体。
元数据操作:Admin
- boolean isMasterRunning()
- HTableDescriptor[] listTables(Pattern pattern)
- void createTable(HTableDescriptor desc)
- void deleteTable(final TableName tableName)
- void compact(final TableName tableName)
- void snapshot(final String snapshotName,
- final TableName tableName)
等。
调用接口工厂:Connection
这个调用接口是连接句柄,但把它视为所有调用接口的工厂可能会更适合。
- Table getTable(TableName tableName)
- Table getTable(TableName tableName,ExecutorService pool)
- RegionLocator getRegionLocator(TableName tableName)
- Admin getAdmin()
如何使用它呢--以前的做法:
Configuration cfg = HBaseConfiguration.create();HTable t = new HTable(cfg, “mytable”);t.put(new Put(row).add(fam, qual, value));t.close();
如何使用它呢--新的做法:
Connection conn = ConnectionFactory.createConnection();TableName tablename = TableName.valueOf(“mytable”);Table t = conn.getTable(tablename);t.put(new Put(row).add(fam, qual, value));t.close();conn.close();
public class Putter { Connection conn_; public Putter(Connection conn) { conn_ = conn; } public void put(TableName tablename, byte[] row, byte[] fam, byte[] qual, byte[] value) { Table t = conn.getTable(tablename); t.put(new Put(row).add(fam, qual, value)); t.close(); }}
Table, Admin, RegionLocator
重量级重轻创建代价高昂廉价线程安全性是否使用方法进程内创建一个并共享单线程上下文中随需创建
问题?
0 0
- HBase 1.0.0 API的变化
- Hbase-1.0+ Java API:BufferedMutatorExample,Hbase新API的使用
- HBase 的Java API
- HBase的Java API
- hbase基本的api
- Hbase的API使用
- Hbase的API
- lucene 2.4的api变化。。。
- Android L的API变化
- hbase-shell + hbase的java api
- IOS SDK7.0 API 变化
- [hbase]使用HBase的Java API查询HBase(2)
- [hbase]使用HBase的Java api查询HBase
- Java 访问 Hbase 的API
- api学习:hbase的filter
- hbase的api代码示例
- Hbase API 的简单使用
- hbase rest api的使用
- hdu 1812 Count the Tetris (置换)
- Android平台Robotium UI测试详解
- 如何上传自己的代码到Git上
- [Aha]镖局运镖
- <32>python学习笔记——常用模块
- HBase 1.0.0 API的变化
- 258. Add Digits
- 指针例题详解
- 聚合maven+spring-boot打包可执行jar
- Ubuntu下QT creator查看pixhawk工程
- 大海波涛
- 关于Tomcat 加入项目问题
- Day1 html5
- White_Society_March_9 【小组练习】【--完结--】