无标题文章

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.*;

import org.apache.hadoop.hbase.client.*;

import

java.io.IOException;

public class ExampleForHbase{

public static Configuration configuration;

public static Connection connection;

public static Admin admin;

//主函数中的语句请逐句执行,只需删除其前的//即可,如:执行insertRow时请将其他语句注释

public static void main(String[] args)throws IOException{

createTable("Score",new String[]{"Studnet","Course","SC"});

}

//建立连接

public static void init(){

configuration  = HBaseConfiguration.create();

configuration.set("hbase.rootdir","hdfs://localhost:9000/hbase");

try{

connection = ConnectionFactory.createConnection(configuration);

admin = connection.getAdmin();

}catch (IOException e){

e.printStackTrace();

}

}

//关闭连接

public static void close(){

try{

if(admin != null){

admin.close();

}

if(null != connection){

connection.close();

}

}catch (IOException e){

e.printStackTrace();

}

}

/**

* 建表。HBase的表中会有一个系统默认的属性作为主键,主键无需自行创建,默认为put命令操作中表名后第一个数据,因此此处无需创建id列

* @param myTableName 表名

* @param colFamily 列族名

* @throws IOException

*/

public static void createTable(String tableName,String[] fields) throws IOException {

init();

TableName tablename = TableName.valueOf(tableName);

if(admin.tableExists(tablename)){

System.out.println("table is exists!");

admin.disableTable(tablename);

admin.deleteTable(tablename);//删除原来的表

}else{

HTableDescriptor hTableDescriptor = new HTableDescriptor(tablename);

for(String str:fields){

HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(str);

hTableDescriptor.addFamily(hColumnDescriptor);

}

admin.createTable(hTableDescriptor);

System.out.println("create table success");

}

close();

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容