首页 > 代码库 > hbase jave编程
hbase jave编程
1、搭建环境
复制linux下已配置搭建好的hbase目录进入windows里面,当然使用linux开发的可以不用。
新建java工程,将hbase目录下的jar和lib下的jar包添加到类路径下。
同时增加外部Class Folder将hbase的conf目录增加进来 多数连接操作就是因为没有配置这个部分。
2、OK
编辑代码,自己试着运行运行吧。
package hbase;import java.util.ArrayList;import java.util.List;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.HColumnDescriptor;import org.apache.hadoop.hbase.HTableDescriptor;import org.apache.hadoop.hbase.client.Delete;import org.apache.hadoop.hbase.client.HBaseAdmin;import org.apache.hadoop.hbase.client.HTable;import org.apache.hadoop.hbase.client.HTableInterface;import org.apache.hadoop.hbase.client.HTablePool;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;public class HbaseDemo { public static Configuration conf; static{ conf = HBaseConfiguration.create(); } public static void main(String[] args) throws Exception { createTable("test1"); } /** * 查询所有数据 * @param tableName * @throws Exception */ public static void queryAll(String tableName) throws Exception{ System.out.println("query all start...."); HTablePool pool = new HTablePool(conf, 1000); HTableInterface table = pool.getTable(tableName); ResultScanner scanner = table.getScanner(new Scan()); for (Result result : scanner) { System.out.println("rowkey:\t"+new String(result.getRow())); for (org.apache.hadoop.hbase.KeyValue kv : result.raw()) { System.out.println("column:\t"+new String(kv.getFamily())+":"+new String(kv.getValue())); } } } /** * 删除行 * @param tableName * @param rowkey * @throws Exception */ public static void deleteRow(String tableName,String rowkey) throws Exception{ HTable table = new HTable(conf, tableName); List list = new ArrayList(); Delete d1 = new Delete(rowkey.getBytes()); list.add(d1); table.delete(list); System.out.println("delete row end ...."); } /** * 删除表 * @param tableName * @throws Exception */ public static void dropTable(String tableName) throws Exception{ HBaseAdmin admin = new HBaseAdmin(conf); admin.disableTable(tableName); admin.deleteTable(tableName); admin.close(); } /** * 插入数据 * @param tableName * @throws Exception */ public static void insertData(String tableName) throws Exception{ System.out.println("insert data start....."); HTablePool pool = new HTablePool(conf, 1000); HTableInterface table = pool.getTable(tableName); Put put = new Put("row001".getBytes()); put.add("tf1".getBytes(), null, "aaa".getBytes()); put.add("tf2".getBytes(), null, "aaa".getBytes()); put.add("tf3".getBytes(), null, "aaa".getBytes()); table.put(put); System.out.println("insert data end....."); } /** * 创建表 * @param tableName * @throws Exception */ public static void createTable(String tableName) throws Exception{ System.out.println("create table ...."); HBaseAdmin admin = new HBaseAdmin(conf); // 如果存在要创建的表,那么先删除,再创建 if(admin.tableExists(tableName)){ admin.disableTable(tableName); admin.deleteTable(tableName); System.out.println(tableName+" table exists,delete ...."); } HTableDescriptor descriptor = new HTableDescriptor(tableName); descriptor.addFamily(new HColumnDescriptor("tf1")); descriptor.addFamily(new HColumnDescriptor("tf2")); descriptor.addFamily(new HColumnDescriptor("tf3")); admin.createTable(descriptor); admin.close(); System.out.println("create table finished...."); }}
3、linux hbase shell
>list
列出所有的table
>status
>version
>scan ‘tableName‘
浏览数据
》describe ‘tableName‘
>descrive extended ‘tableName‘
......................
参考:http://javacrazyer.iteye.com/blog/1186881
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。