本文對以下內容進行介紹
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);
}
}
結果展示:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/353313.html
標籤:其他
上一篇:K線型別識別—單K線之陽線
