//java导入类import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.*;import org.

//java导入类

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.*;

import org.apache.hadoop.hbase.client.*;

import java.io.IOException;

public class hbaseopreation{

    public static Configuration configuration;

    public static Connection connection;

    public static Admin admin;

    public static void main(String[] args)throws IOException{

        createTable("t2",new String[]{"cf1","cf2"});

        insertRow("t2", "rw1", "cf1", "q1", "val1");

        getData("t2", "rw1", "cf1", "q1");

       }

//建立连接

    public static void init(){

        configuration  = HBaseConfiguration.create();

        configuration.set("hbase.rootdir","hdfs://localhost:9000/hbase");

        try{

            connection = ConnectionFactory.createConnection(configuration);

            admin = connection.getAdmin();

        }catch (IOException e){

            e.printStackTrace();

        }

    }

    //关闭连接

    public static void close(){

        try{

            if(admin != null){

                admin.close();

            }

            if(null != connection){

                connection.close();

            }

        }catch (IOException e){

            e.printStackTrace();

        }

}

//建表

    public static void createTable(String myTableName,String[] colFamily) throws IOException {

        init(); 

        TableName tableName =TableName.valueOf(myTableName);

         if(admin.tableExists(tableName)){

            System.out.println("talbe is exists!");

        }else {

HTableDescriptor  hTableDescriptor = new HTableDescriptor(tableName);                             

            for(String str:colFamily){

                HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(str);

                hTableDescriptor.addFamily(hColumnDescriptor);

            }

            admin.createTable(hTableDescriptor);

        }

        close();

}

//插入单元格数据

    public static void insertRow(String tableName,String rowKey,String colFamily,String col,String val) throws IOException {

        init();

        Table table = connection.getTable(TableName.valueOf(tableName));

        Put put = new Put(rowKey.getBytes());

        put.addColumn(colFamily.getBytes(), col.getBytes(), val.getBytes());

        table.put(put);

        table.close();

        close();

}

//删除单元格数据

public static void deleteRow(String tableName,String rowKey,String colFamily,String col) throws IOException {

init();

Table table = connection.getTable(TableName.valueOf(tableName));

Delete delete = new Delete(rowKey.getBytes());

//删除指定列族

//delete.addFamily(Bytes.toBytes(colFamily));

//删除指定列

//delete.addColumn(Bytes.toBytes(colFamily),Bytes.toBytes(col));

table.delete(delete);

table.close();

close();

    }

//根据rowkey查找单元格数据

    public static void getData(String tableName,String rowKey,String colFamily,String col)throws  IOException{

        init();

        Table table = connection.getTable(TableName.valueOf(tableName));

        Get get = new Get(rowKey.getBytes());

        get.addColumn(colFamily.getBytes(),col.getBytes());

        Result result = table.get(get);

        showCell(result);

        table.close();

        close();

}

 //格式化输出

public static void showCell(Result result){

Cell[] cells = result.rawCells();

for(Cell cell:cells){

System.out.println("RowName:"+new String(CellUtil.cloneRow(cell))+" ");

    System.out.println("Timetamp:"+cell.getTimestamp()+" ");

System.out.println("columnFamily:"+new String(CellUtil.cloneFamily(cell))+" ");

System.out.println("rowName:"+new String(CellUtil.cloneQualifier(cell))+" ");

System.out.println("value:"+new String(CellUtil.cloneValue(cell))+" ");

        }

    }

//删表

public static void deleteTable(String tableName) throws IOException {

 init();

 TableName tn = TableName.valueOf(tableName);

if (admin.tableExists(tn)) {

      admin.disableTable(tn);

      admin.deleteTable(tn);

        }

close();

}

//查看已有表

public static void listTables() throws IOException {

 init();

 HTableDescriptor hTableDescriptors[] = admin.listTables();

 for(HTableDescriptor hTableDescriptor :hTableDescriptors){

       System.out.println(hTableDescriptor.getNameAsString());

        }

 close();

    }

}

  1. 运行代码:

Run asàJava Application

10)运行结果

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值