HBaseClient




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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值