版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011462328/article/details/52875284
- 本地hosts配置:配置HBase所在集群的hosts,直接复制/etc/hosts下面的内容
- 到HBase安装节点下载/etc/hbase/conf/hbase-site.xml,复制到JAVA MAVEN项目resources目录
- pom文件
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.1.2</version>
</dependency>
4.JAVA代码
package cn.gcks.repository;
import cn.gcks.util.CommonUtils;
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;
/**
* HBase API
*/
public class HBaseRepository {
public static Configuration configuration;
public static Connection connection;
public static Admin admin;
static {
configuration = HBaseConfiguration.create();
try {
connection = ConnectionFactory.createConnection(configuration);
admin = connection.getAdmin();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void createTable(String tableNmae, String[] cols) throws IOException {
TableName tableName = TableName.valueOf(tableNmae);
if (admin.tableExists(tableName)) {
System.out.println("talbe is exists!");
} else {
HTableDescriptor hTableDescriptor = new HTableDescriptor(tableName);
for (String col : cols) {
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(col);
hTableDescriptor.addFamily(hColumnDescriptor);
}
admin.createTable(hTableDescriptor);
}
close();
}
public static void insterRow(String tableName, String rowkey, String colFamily, String col, String val) throws IOException {
Table table = connection.getTable(TableName.valueOf(tableName));
Put put = new Put(Bytes.toBytes(rowkey));
put.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(col), Bytes.toBytes(val));
table.put(put);
table.close();
close();
}
/**
* 根据行键、列族、列限定符查找数据
*
* @param tableName 表名
* @param rowkey 行键
* @param colFamily 列族(默认值为null)
* @param qualifier 列限定符(默认值为null)
* @throws Exception
*/
public static Result getData(String tableName, String rowkey, String colFamily, String qualifier) throws Exception {
Table table = connection.getTable(TableName.valueOf(tableName));
Get get = new Get(Bytes.toBytes(rowkey));
if (CommonUtils.isNotBlank(colFamily)) {
if (CommonUtils.isNotBlank(qualifier)) {
get.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(qualifier));
} else {
get.addFamily(Bytes.toBytes(colFamily));
}
}
Result result = table.get(get);
table.close();
close();
return result;
}
public static void scanData(String tableName, String startRow, String stopRow) throws IOException {
Table table = connection.getTable(TableName.valueOf(tableName));
Scan scan = new Scan();
ResultScanner resultScanner = table.getScanner(scan);
for (Result result : resultScanner) {
showCell(result);
}
table.close();
close();
}
/**
* 根据行键、列族、列限定符删除数据
*
* @param tableName 表名
* @param rowkey 行键
* @param colFamily 列族(默认值为null)
* @param qualifier 列限定符(默认值为null)
* @throws Exception
*/
public static void deleRow(String tableName, String rowkey, String colFamily, String qualifier) throws IOException {
Table table = connection.getTable(TableName.valueOf(tableName));
Delete delete = new Delete(Bytes.toBytes(rowkey));
if (CommonUtils.isNotBlank(colFamily)) {
if (CommonUtils.isNotBlank(qualifier)) {
delete.addColumn(Bytes.toBytes(colFamily), Bytes.toBytes(qualifier));
} else {
delete.addFamily(Bytes.toBytes(colFamily));
}
}
table.delete(delete);
table.close();
close();
}
public static void listTables() throws IOException {
HTableDescriptor hTableDescriptors[] = admin.listTables();
for (HTableDescriptor hTableDescriptor : hTableDescriptors) {
System.out.println(hTableDescriptor.getNameAsString());
}
close();
}
public static void deleteTable(String tableName) throws IOException {
TableName tn = TableName.valueOf(tableName);
if (admin.tableExists(tn)) {
admin.disableTable(tn);
admin.deleteTable(tn);
}
close();
}
public static void showCell(Result result) {
Cell[] cells = result.rawCells();
for (Cell cell : cells) {
System.out.println("===========================");
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("column qualifier:" + new String(CellUtil.cloneQualifier(cell)) + " ");
System.out.println("value:" + new String(CellUtil.cloneva lue(cell)) + " ");
System.out.println("===========================");
}
}
public static void close() {
try {
if (null != admin) admin.close();
if (null != connection) connection.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}