1. 程式人生 > >虛擬機器環境下使用java訪問hbase進行表操作2

虛擬機器環境下使用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");

    }

}