liboss

            夫为道者,譬如一人与万人战,挂铠出门,意或怯弱,或半路而退,或格斗而死,或得胜而还。沙门学道,应当坚持其心,精进勇锐,不畏前境,破灭众魔,而得道果!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

 

 
package top.liboss.hbase; 
 
import java.io.IOException; 
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.KeyValue; 
import org.apache.hadoop.hbase.MasterNotRunningException; 
import org.apache.hadoop.hbase.ZooKeeperConnectionException; 
import org.apache.hadoop.hbase.client.Delete; 
import org.apache.hadoop.hbase.client.Get; 
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.client.Put; 
import org.apache.hadoop.hbase.util.Bytes; 
 
public class HBaseBasic {    
    private static Configuration conf = null;         
    static { 
        Configuration HBASE_CONFIG = new Configuration(); 
        //hbase/conf/hbase-site.xmlhbase.zookeeper.quorum  
        HBASE_CONFIG.set("hbase.zookeeper.quorum", "192.168.1.1");         
        //hbase/conf/hbase-site.xmlhbase.zookeeper.property.clientPort 
        HBASE_CONFIG.set("hbase.zookeeper.property.clientPort", "2181"); 
        conf = HBaseConfiguration.create(HBASE_CONFIG);
    }     
 
 
    public static void creatTable(String tableName, String[] familys) throws Exception { 
        HBaseAdmin admin = new HBaseAdmin(conf);         
        if (admin.tableExists(tableName)) { 
            System.out.println("table already exists!");         
        } else { 
            HTableDescriptor tableDesc = new HTableDescriptor(tableName); 
            for(int i=0; i<familys.length; i++){ 
                tableDesc.addFamily(new HColumnDescriptor(familys[i]));             
            }
            
            admin.createTable(tableDesc); 
            System.out.println("create table " + tableName + " ok.");         
        }      
    }        
    
    public static void deleteTable(String tableName) throws Exception {        
        try { 
            HBaseAdmin admin = new HBaseAdmin(conf);         
            admin.disableTable(tableName);         
            admin.deleteTable(tableName); 
            System.out.println("delete table " + tableName + " ok.");        
        } catch (MasterNotRunningException e) {         
            e.printStackTrace(); 
        } catch (ZooKeeperConnectionException e) {         
            e.printStackTrace();        
        }     
    } 
    
    public static void addRecord (String tableName, String rowKey, String family, String qualifier, String value)       throws Exception{      
        try { 
            HTable table = new HTable(conf, tableName);       
            Put put = new Put(Bytes.toBytes(rowKey)); 
            put.add(Bytes.toBytes(family),Bytes.toBytes(qualifier),Bytes.toBytes(value)); 
            table.put(put); 
            System.out.println("insert recored " + rowKey + " to table " + tableName +" ok."); 
        } catch (IOException e) {       
            e.printStackTrace(); 
        }     
    } 
 
    public static void delRecord (String tableName, String rowKey) throws IOException{ 
        HTable table = new HTable(conf, tableName);      
        List list = new ArrayList(); 
        Delete del = new Delete(rowKey.getBytes());      
        list.add(del); 
        table.delete(list); 
        System.out.println("del recored " + rowKey + " ok.");     
    }         
    
    public static void getOneRecord (String tableName, String rowKey) throws IOException{ 
        HTable table = new HTable(conf, tableName);      
        Get get = new Get(rowKey.getBytes());      
        Result rs = table.get(get);      
        for(KeyValue kv : rs.raw()){ 
            System.out.print(new String(kv.getRow()) + " " );       
            System.out.print(new String(kv.getFamily()) + ":" );       
            System.out.print(new String(kv.getQualifier()) + " " );       
            System.out.print(kv.getTimestamp() + " " );       
            System.out.println(new String(kv.getValue()));      
        }     
    }         
    
    public static void getAllRecord (String tableName) {      
        try{ 
            HTable table = new HTable(conf, tableName);           
            Scan s = new Scan(); 
            ResultScanner ss = table.getScanner(s);           
            for(Result r:ss){ 
                for(KeyValue kv : r.raw()){ 
                    System.out.print(new String(kv.getRow()) + " ");               
                    System.out.print(new String(kv.getFamily()) + ":");               
                    System.out.print(new String(kv.getQualifier()) + " ");               
                    System.out.print(kv.getTimestamp() + " "); 
                    System.out.println(new String(kv.getValue()));               
                }           
            } 
        } catch (IOException e){       
            e.printStackTrace(); 
        }     
    }    
    
    public static void  main (String [] agrs) {   
        try { 
            String tablename = "student"; 
            String[] familys = {"id", "name","score"};    //HBaseBasic.creatTable(tablename, familys);     
            //add record zkb 
            //HBaseBasic.addRecord(tablename,"2","id","","095832");    //HBaseBasic.addRecord(tablename,"2","name","","zmac");    //HBaseBasic.addRecord(tablename,"2","score","math","97");    //HBaseBasic.addRecord(tablename,"2","score","chinese","87");    //HBaseBasic.addRecord(tablename,"2","score","english","85");    //add record  baoniu     
            System.out.println("===========get one record========");
            HBaseBasic.getOneRecord(tablename, "2");     
            System.out.println("===========show all record========");    
            HBaseBasic.getAllRecord(tablename);     
            System.out.println("===========del one record========");    
            HBaseBasic.delRecord(tablename, "2");    
            HBaseBasic.getAllRecord(tablename);     
        } catch (Exception e) {    
            e.printStackTrace();   
        }  
    } 
    
    
} 
 


运行会,你将看到首先创建数据库student,其字段为
id,name,score{english,math,chinese},然后向该数据表插入数据,再查询记录,删除记录等

posted on 2014-06-17 15:37  lam99v  阅读(267)  评论(0编辑  收藏  举报