java api访问hbase_javaAPI操作Hbase

package chapter04;

import org.apache.commons.lang.StringUtils;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.Cell;

import org.apache.hadoop.hbase.CellUtil;

import org.apache.hadoop.hbase.HBaseConfiguration;

import org.apache.hadoop.hbase.TableName;

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

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

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

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

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

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

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

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

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

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

public class ExampleForHbase {

//配置类

public static Configuration configuration ;

// 连接类

public static Connection connection ;

// 管理类

public static Admin admin;

public static void main(String[] args) {

init();

//创建表

//createTable("Score",new String[]{"sname","course"});

// 删除表

//dropTable("Score");

// 查询所有的表

//listTable();

// 新增一条数据

//insertRow("Score", "98001", "sname", "", "张三");

// insertRow("Score","98001","course","math","80");

// 查询数据

getData("Score", "98001", "course", "math");

// 删除数据

deleteRow("Score", "98001", "sname", "");

getData("Score", "98001", "sname","");

close();

}

/**

* 初始化

*/

public static void init() {

configuration = HBaseConfiguration.create();

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

try {

connection = ConnectionFactory.createConnection(configuration);

admin = connection.getAdmin();

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 关闭

*/

public static void close() {

try {

if(admin!=null) {

admin.close();

}

if(null != connection) {

connection.close();

}

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 创建表

* @param tabName

* @param colFamily

*/

public static void createTable(String tabName,String[] colFamily) {

try {

TableName tableName = TableName.valueOf(tabName);

if(admin.tableExists(tableName)) {

System.out.println("Table is exist!");

}else {

TableDescriptorBuilder tableBuilder = TableDescriptorBuilder.newBuilder(tableName);

for(String str:colFamily) {

tableBuilder.setColumnFamily(ColumnFamilyDescriptorBuilder.of(str)) ;

}

admin.createTable(tableBuilder.build());

System.out.println("Table create successful!");

}

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 删除表

* @param tabName

*/

public static void dropTable(String tabName) {

try {

TableName tableName = TableName.valueOf(tabName);

admin.disableTable(tableName);

admin.deleteTable(tableName);

System.out.println("删除成功"+tabName);

close();

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 查询表列表

*/

public static void listTable() {

try {

TableName[] tbNames = admin.listTableNames();

for (TableName tableName : tbNames) {

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

}

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 新增一条记录

* @param tabName表名

* @param rowKey行键

* @param colFamily列族

* @param column列名

* @param value单元值

*/

public static void insertRow(String tabName,String rowKey,String colFamily,String column,String value) {

try {

TableName tableName = TableName.valueOf(tabName);

Table table = connection.getTable(tableName);

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

put.addColumn(colFamily.getBytes(), column.getBytes(), value.getBytes());

table.put(put);

table.close();

System.out.println("新增纪录成功!");

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 删除行数据

* @param tabName表名

* @param rowKey行键

* @param colFamily列族

* @param qualifier列修饰符

*/

public static void deleteRow(String tabName,String rowKey,String colFamily,String qualifier) {

try {

TableName tableName = TableName.valueOf(tabName);

Table table = connection.getTable(tableName);

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

// 删除指定列族的所有数据

if(StringUtils.isNotEmpty(qualifier) && StringUtils.isNotEmpty(colFamily)) {

delete.addColumn(colFamily.getBytes(),qualifier.getBytes());

}else if(StringUtils.isNotEmpty(colFamily)) {

delete.addFamily(colFamily.getBytes());

}

table.delete(delete);

System.out.println("删除数据成功");

table.close();

} catch (Exception e) {

}

}

/**

* 查询数据

* @param tabName

* @param rowKey

* @param colFamily

* @param qualifier

*/

public static void getData(String tabName,String rowKey,String colFamily,String qualifier) {

try {

TableName tableName = TableName.valueOf(tabName);

Table table = connection.getTable(tableName);

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

if(StringUtils.isNotEmpty(qualifier) && StringUtils.isNotEmpty(colFamily)) {

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

}else if(StringUtils.isNotEmpty(colFamily)) {

get.addFamily(colFamily.getBytes());

}

Result result = table.get(get);

if(!result.isEmpty()) {

showCell(result);

}else {

System.out.println("数据已经不存在");

}

table.close();

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 格式化输出

* @param result

*/

private 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("column Family:"+new String(CellUtil.cloneFamily(cell))+" ");

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

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

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值