首页 > 代码库 > 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