HBaseClient

来源:互联网 发布:手机麻将作弊软件 编辑:程序博客网 时间:2024/05/29 08:29
import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.*;import org.apache.hadoop.hbase.client.*;import org.apache.hadoop.hbase.util.Bytes;import java.io.IOException;import java.util.HashMap;import java.util.List;import java.util.Map;public class HBaseClient {    static protected Configuration conf;    protected HBaseAdmin admin;    protected HTable hTable;    protected List<String> columnFamilies;    static {        conf = HBaseConfiguration.create();        conf.set("hbase.zookeeper.quorum", "gs-server-v-129,gs-server-v-128,gs-server-v-127");        conf.set("hbase.zookeeper.property.clientProt", "2181");    }    public void init() throws MasterNotRunningException, ZooKeeperConnectionException {        admin = new HBaseAdmin(conf);    }    public void createTable(String tableName,List<String> columnFamilies) throws IOException {        this.columnFamilies = columnFamilies;        if(!admin.tableExists(tableName)){            HTableDescriptor hTableDescriptor = new HTableDescriptor(tableName.getBytes());            for(String columnFamily : this.columnFamilies){                hTableDescriptor.addFamily(new HColumnDescriptor(columnFamily));            }            admin.createTable(hTableDescriptor);            hTable = new HTable(conf,tableName);        }    }    public  void connectTable(String tableName) throws IOException {        init();        hTable = new HTable(conf,tableName);    }    public void deleteTable(String tableName) throws IOException {        if(admin.tableExists(tableName)){            admin.disableTable(tableName);            admin.deleteTable(tableName);        }    }    public void addColumnFamilies(List<String> columnFamilies){        this.columnFamilies.addAll(columnFamilies);    }    public  void addColumnFamily(String columnFamily){        this.columnFamilies.add(columnFamily);    }    public void insert(String rowKey,String columnFamily,String column,String value ) throws IOException {        Put put = new Put(Bytes.toBytes(rowKey));        put.add(Bytes.toBytes(columnFamily),Bytes.toBytes(column),Bytes.toBytes(value));        hTable.put(put);    }    public Map<byte[],byte[]> getScanner(String family) throws IOException {        Map<byte[],byte[]> map = new HashMap<byte[],byte[]>();        for(Result row:hTable.getScanner(family.getBytes())){            for(Map.Entry<byte[],byte[]> entry : row.getFamilyMap(family.getBytes()).entrySet()){                map.put(entry.getKey(),entry.getValue());            }        }        return map;    }    public String get(String family,String column) throws IOException {        for(Result row:hTable.getScanner(family.getBytes())){            for(Map.Entry<byte[],byte[]> entry : row.getFamilyMap(family.getBytes()).entrySet()){                if(column.equals(new String(entry.getKey()))){                    return new String(entry.getValue());                }            }        }        return null;    }}

0 0
原创粉丝点击