虛擬機器環境下使用java訪問hbase進行表操作2
1:建立student表,表結構包含info和course兩個列族
java程式碼:
package myhbase;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration; //匯入hadoop和hbase的環境配置
import org.apache.hadoop.hbase.*;//匯入hbase工具
import org.apache.hadoop.hbase.client.*;//匯入hbase客戶端介面
import org.apache.hadoop.hbase.util.Bytes;
public class createTable{
public static Configuration configuration;//建立全域性變數configuration用來管理配置資訊
public static Connection connection;//建立全域性變數connection用來管理hbase的連線資訊
public static Admin admin;//建立全域性變數admin管理hbase資料庫的表資訊
public static void main(String[] args){
}
public void static getconnect()throws IOException{ //建立連線方法
configuration = HBaseConfiguration.create();//使用預設的hbase配置檔案建立configuration
configuration.set("hbase.rootdir","hdfs://localhost:9000/hbase");//設定hbase資料庫的儲存路徑
try{
connection=ConnectionFactory.CreateConnection(configuration);//建立hbase資料庫的連線
admin=connection.getAdmin();//獲取連線後的表資訊
}catch(IOException e){
e.printStackTrace();
}
}
public void static createTable(String mytableName,string[] colFamily){ // 建立表的方法
TableName tableName = TableName.valueOf(mytableName);//獲得當前表格的名字實列
if(admin.tableExist(tableName)){ //判斷要建立的表是否存在
System.err.println("table exist");
}
else{
HTableDescriptor hTableDescriptor = new HTableDescriptor(mytableName); //實列化一個描述表結構和表名的物件
for(String str:colFamily){
hTableDescriptor.addFamily(new HTableColumnFamily(str)); //直接根據預設屬性實列化一個描述列族資訊的物件新增列族
}
admin.createTable(hTableDescriptor);//建立表
System.err.println("create table success");
}
}