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;
public class HBaseAPI2 {
private static Connection connection = null ;
static {
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum","BigData002,BigData003,BigData004");
conf.set("hbase.zookeeper.property.clientPort","2181");
try {
connection= ConnectionFactory.createConnection(conf);
} catch (IOException e) {
e.printStackTrace();
}
}
private static void createTable(String tableName, String ... families) throws IOException {
Admin admin = connection.getAdmin();
try {
if (admin.tableExists(TableName.valueOf(tableName))){
System.out.println("table:"+tableName+"exists!");
return;
}
HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(tableName));
for (String family : families) {
HColumnDescriptor familyDesc = new HColumnDescriptor(family);
desc.addFamily(familyDesc);
}
admin.createTable(desc);
}finally {
admin.close();
}
}
public static boolean tableExist(String tableName) throws IOException {
Admin admin = connection.getAdmin();
try {
return admin.tableExists(TableName.valueOf(tableName));
} finally {
admin.close();
}
}
private static void putCompany(String tableName, String rowKey, String family, String column, String value) throws IOException {
if (!tableExist(tableName)) {
System.out.println("table:" + tableName + " not exists!");
return;
}
Table table = connection.getTable(TableName.valueOf(tableName));
try {
Put put = new Put(Bytes.toBytes(rowKey));
put.addColumn(Bytes.toBytes(family), Bytes.toBytes(column), Bytes.toBytes(value));
table.put(put);
} finally {
table.close();
}
}
private static void getRow(String tableName, String rowKey) throws IOException {
Table table = connection.getTable(TableName.valueOf(tableName));
Get get = new Get(Bytes.toBytes(rowKey));
Result result = table.get(get);
Cell[] cells = result.rawCells();
for (Cell cell : cells) {
byte[] columnBytes = CellUtil.cloneQualifier(cell);
String columnStr = Bytes.toString(columnBytes);
byte[] valueBytes = CellUtil.cloneValue(cell);
String valueStr = Bytes.toString(valueBytes);
System.out.println(columnStr + ":" + valueStr);
}
table.close();
}
public static void dropTable(String tableName) throws IOException {
Admin admin = connection.getAdmin();
try {
if (!admin.tableExists(TableName.valueOf(tableName))) {
System.out.println("table:" + tableName + " not exists!");
return;
}
admin.disableTable(TableName.valueOf(tableName));
admin.deleteTable(TableName.valueOf(tableName));
} finally {
admin.close();
}
}
public static void getAllRows(String tableName) throws IOException{
Table table = connection.getTable(TableName.valueOf(tableName));
Scan scan = new Scan();
ResultScanner resultScanner = table.getScanner(scan);
for(Result result : resultScanner){
Cell[] cells = result.rawCells();
for(Cell cell : cells){
System.out.println("行键:" + Bytes.toString(CellUtil.cloneRow(cell)));
System.out.println("列族" + Bytes.toString(CellUtil.cloneFamily(cell)));
System.out.println("列:" + Bytes.toString(CellUtil.cloneQualifier(cell)));
System.out.println("值:" + Bytes.toString(CellUtil.cloneValue(cell)));
}
}
}
public static void deleteRow(String tableName, String rowKey) throws IOException {
if (!tableExist(tableName)) {
System.out.println("table:" + tableName + " not exists!");
return;
}
Table table = connection.getTable(TableName.valueOf(tableName));
try {
Delete delete = new Delete(Bytes.toBytes(rowKey));
table.delete(delete);
} finally {
table.close();
}
}
public static void main(String[] args) throws IOException {
// createTable("company","info","data");
// putCompany("company", "001", "info", "name", "Baidu");
// putCompany("company", "001", "data", "city", "Beijing");
// putCompany("company", "002", "info", "name", "Tencent");
putCompany("company", "002", "data", "city", "Shenzhen");
// putCompany("company", "003", "info", "name", "HUAWEI");
// putCompany("company", "003", "data", "city", "Dongguan");
// getAllRows("company");
// getRow("company", "001");
// deleteRow("company", "002");
dropTable("company");
}
}
HBases API
最新推荐文章于 2023-05-10 11:04:33 发布