java 对Hbase的基本操作
2013-01-30 12:52
357 查看
Java对Hbase的各种操作都是通过HTable实现的,由于创建HTable是有消耗的,因此推荐只创建一个HTable的实例,如果必须使用多个HTable实例,可以使用HTablePool,本文不对HTablePool进行介绍。
创建表:
创建表是通过HBaseAdmin类实现的,通过HBaseAdmin 类主要是对于表的管理操作。
HBaseAdmin还包含了各种操作表的API,包括删除表,删除列等,有兴趣的可以看他的官方API,这里就不再讨论了。
添加数据:
添加数据通过HTable的put操作,添加Put对象;
对于Put类,包含了多个构造函数使用,在这里我们只是使用了他的第一个构造函数。
像Put对象添加数据使用add函数:
添加数据操作:
获取数据:
对于获取数据,需要喜欢使用HTable的get函数:
Get类的构造函数相对与Put少了ts
获取数据的操作:
对于扫描全表则需要使用scanner了。
创建表:
创建表是通过HBaseAdmin类实现的,通过HBaseAdmin 类主要是对于表的管理操作。
public static void createTable(String tableName, String[] cfs) throws IOException{ HBaseAdmin admin = new HBaseAdmin(configuration); if (admin.tableExists(tableName)) { System.out.println("table already exists"); }else { HTableDescriptor descriptor = new HTableDescriptor(tableName); for(int i = 0; i < cfs.length; ++i){ descriptor.addFamily(new HColumnDescriptor(cfs[i])); } admin.createTable(descriptor); } }
HBaseAdmin还包含了各种操作表的API,包括删除表,删除列等,有兴趣的可以看他的官方API,这里就不再讨论了。
添加数据:
添加数据通过HTable的put操作,添加Put对象;
void put(Put put) throws IOException
对于Put类,包含了多个构造函数使用,在这里我们只是使用了他的第一个构造函数。
Put(byte[] row) Put(byte[] row, RowLock rowLock) Put(byte[] row, long ts) Put(byte[] row, long ts, RowLock rowLock)
像Put对象添加数据使用add函数:
Put add(byte[] family, byte[] qualifier, byte[] value) Put add(byte[] family, byte[] qualifier, long ts, byte[] value) Put add(KeyValue kv) throws IOException
添加数据操作:
public static void putData(String tableName) throws IOException{ HTable table = new HTable(configuration, tableName); Put put = new Put(Bytes.toBytes("row1")); put.add(Bytes.toBytes("cf"), Bytes.toBytes("a"), Bytes.toBytes("v1")); table.put(put); table.close(); }
获取数据:
对于获取数据,需要喜欢使用HTable的get函数:
Result get(Get get) throws IOException
Get类的构造函数相对与Put少了ts
Get(byte[] row) Get(byte[] row, RowLock rowLock)
获取数据的操作:
public static void getData(String tableName) throws IOException{ HTable table = new HTable(configuration, tableName); Get get = new Get(Bytes.toBytes("row1")); Result result = table.get(get); String value = new String(result.getValue(Bytes.toBytes("cf"), Bytes.toBytes("a"))); System.out.println(value); table.close(); }
对于扫描全表则需要使用scanner了。
public static void scannerData(String tablename) throws IOException { HTable table = new HTable(configuration, tablename); Scan s = new Scan(); ResultScanner rs = table.getScanner(s); for (Result r : rs) { KeyValue[] kv = r.raw(); for (int i = 0; i < kv.length; i++) { System.out.print(new String(kv[i].getRow()) + " "); System.out.print(new String(kv[i].getFamily()) + ":"); System.out.print(new String(kv[i].getQualifier()) + " "); System.out.print(kv[i].getTimestamp() + " "); System.out.println(new String(kv[i].getValue())); } } }
相关文章推荐
- JAVA操作Hbase管理类HbaseManage基本详细操作
- Hbase Java编程基本操作
- java 对Hbase的基本操作
- java hbase 基本操作
- JAVA操作Hbase管理类HbaseManage基本详细操作
- HBase基本API(java)操作(增删改查)
- 【十八掌●武功篇】第八掌:HBase之基本操作Java API
- HBase1.0.1基本操作(java代码)
- HBase基本操作-Java实现
- HBase的javaAPI的增删改查的基本操作实现
- HBase的Java接口基本操作:创建表插入查询删除
- HBase-java api 基本操作
- Hbase 基本操作用 在java 上的实现
- java对hbase的基本操作,新版API实验
- Hbase Java 基本操作
- Java 程序优化:字符串操作、基本运算方法等优化策略(二)
- Hbase深入学习(六) Java操作HBase
- java操作hbase1.3.1的增删改查
- 用java实现单链表结构与基本数据操作