天天看點

hbase api java舉例_HBase Java API使用操作例子

通過對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 {              //定義配置對象HBaseConfiguration        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("建立表成功!");           }       }              //添加資料,通過HTable。和BatchUpdate為已經存在的表添加資料data        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("添加成功!");       }              //顯示所有資料,通過HTable Scan類擷取已有表的資訊        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();           }       }   }