Hbase学习——对表操作进行封装
Posted 小镭敲代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hbase学习——对表操作进行封装相关的知识,希望对你有一定的参考价值。
本文对以下内容进行介绍
1、封装连接
2、封装操作对象
3、封装命名空间的创建
4、封装表的创建
5、封装插入数据的操作
6、封装获取数据的操作
7、对以上6个函数进行操作检验(hbase创建命名空间、创建表、插入数据、查询数据)
1、封装连接
//封装连接
public static Connection GetConnection() throws IOException {
Configuration conf = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(conf);
return connection;
}
2、封装操作对象
// 封装对操作对象
public static Admin Getadmin() throws IOException {
Admin admin = GetConnection().getAdmin();
return admin;
}
3、封装命名空间的创建
//封装命名空间的创建
public static boolean Exec_NameSpace(String namespace) throws IOException {
boolean result = false;
try {
Getadmin().getNamespaceDescriptor(namespace);
result=true;
} catch (NamespaceNotFoundException exception) {
NamespaceDescriptor build = NamespaceDescriptor.create(namespace).build();
Getadmin().createNamespace(build);
result=true;
}
return result;
}
4、封装表的创建
// 封装创建表的操作
public static boolean Exec_CreateTable(String tablename,String family)throws IOException{
boolean result = false;
//先判断该表不存在
TableName tableName = TableName.valueOf(tablename);
if(Getadmin().tableExists(tableName)==false){
// 创建
HTableDescriptor hTableDescriptor = new HTableDescriptor(tableName);
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(family);
hTableDescriptor.addFamily(hColumnDescriptor);
Getadmin().createTable(hTableDescriptor);
result=true;
}
else
{
result=true;
}
return result;
}
5、封装插入数据的操作
// 封装插入数据的操作
public static boolean Insert_Data(String tablename,String family,String rowkey,String column,String value) throws Exception {
boolean result=false;
try{
Put put = new Put(Bytes.toBytes(rowkey));
put.addColumn(Bytes.toBytes(family),Bytes.toBytes(column),Bytes.toBytes(value));
TableName table = TableName.valueOf(tablename);
GetConnection().getTable(table).put(put);
result=true;
}catch(Exception ex){
result=false;
throw new Exception("执行插入到Hbase过程中,出现了问题!");
}
return result;
}
6、封装获取数据的操作
// 封装获取数据的操作
public static Result GetDateByRowKey(String tablename,String Rowkey) throws IOException{
Get get=new Get(Bytes.toBytes(Rowkey));
TableName table=TableName.valueOf(tablename);
Result result = GetConnection().getTable(table).get(get);
return result;
}
}
7、对以上6个函数进行操作检验(hbase创建命名空间、创建表、插入数据、查询数据)
import org.apache.hadoop.hbase.client.Result;
import java.io.IOException;
public class ddemo1 {
public static void main(String[] args) throws Exception {
boolean result1=HbaseHelper.Exec_NameSpace("myschool1");
if(result1){
System.out.println("创建命名空间成功");
}
else{
System.out.println("创建失败");
}
boolean result2=HbaseHelper.Exec_CreateTable("myschool1:stuinfo","info");
if(result2){
System.out.println("创建表成功");
}
else{
System.out.println("创建失败");
}
boolean result3=HbaseHelper.Insert_Data("myschool1:stuinfo","info","101","name","小镭") ;
if(result3){
System.out.println("插入成功");
}
else{
System.out.println("插入失败");
}
Result result4=HbaseHelper.GetDateByRowKey("myschool1:stuinfo","101");
System.out.println("查询结果为:");
System.out.println(result4);
}
}
结果展示:
以上是关于Hbase学习——对表操作进行封装的主要内容,如果未能解决你的问题,请参考以下文章