虚拟机环境下使用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");
}
}