通过对HBase API的使用,下面例子举例了常见对HBase的操作,如下所示:
- package net.linuxidc.www;
-
- 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.KeyValue; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.io.BatchUpdate; public class HBaseDBDao { static HBaseConfiguration cfg =null; static { Configuration configuration = new Configuration(); cfg = new HBaseConfiguration(configuration); } public static void createTable(String tableName,String columnFarily)throws Exception{ HBaseAdmin admin = new HBaseAdmin(cfg); if(admin.tableExists(tableName)){ System.out.println(tableName+"不存在!"); System.exit(0); }else{ HTableDescriptor tableDesc = new HTableDescriptor(tableName); tableDesc.addFamily(new HColumnDescriptor(columnFarily+":")); System.out.println("创建表成功!"); } } public static void addData(String tableName,String row,String columnFamily,String column,String data)throws Exception{ HTable table = new HTable(cfg,tableName); BatchUpdate update = new BatchUpdate(row); update.put(columnFamily+":"+column, data.getBytes()); table.commit(update); System.out.println("添加成功!"); } public static void getAllData(String tableName)throws Exception{ HTable table = new HTable(cfg,tableName); Scan scan = new Scan(); ResultScanner rs = table.getScanner(scan); for(Result r:rs){ for(KeyValue kv:r.raw()){ System.out.println(new String(kv.getColumn())+new String(kv.getValue())); } } } public static void main(String[] args){ try{ String tableName = "student"; HBaseDBDao.createTable(tableName, "c1"); HBaseDBDao.addData(tableName, "row1", "c1", "1", "this is row 1 column c1:c1"); HBaseDBDao.getAllData(tableName); }catch(Exception e){ e.printStackTrace(); } } }