Java在HBase数据库创建表

来源:互联网 发布:嵌入式要学java吗 编辑:程序博客网 时间:2024/05/20 03:05

Java在HBase数据库创建表

作者:chszs,版权所有,未经同意,不得转载。博主主页:http://blog.csdn.net/chszs

要通过Java在HBase中创建一个数据表,首先需要导入hbase-client.jar驱动包。可以在项目pom.xml配置文件中添加依赖:

<dependency>     <groupId>org.apache.hbase</groupId>     <artifactId>hbase-client<artifactId>     <version>1.1.0.1</version><dependency>

在添加依赖后,我们需要创建Configuration对象,并指定core-site.xml和hbase-site.xml作为资源文件。

Configuration config = HBaseConfiguration.create();config.addResource(new Path("/etc/hbase/conf/hbase-site.xml"));config.addResource(new Path("/etc/hadoop/conf/core-site.xml"));

还需要在Configuration对象中设置hbase.zookeeper.quorum参数和hbase.zookeeper.property.clientPort参数的值,这些值也可以在hbase-site.xml配置文件中找到:

Configuration config = HBaseConfiguration.create();config.set("hbase.zookeeper.quorum", "127.0.0.1");config.set("hbase.zookeeper.property.clientPort", "2181");

Configuration对象创建完成后,接着创建连接到HBase数据库的Connection对象,并通过此对象获取Admin对象,它负责实现创建数据表的操作:

Connection connection = ConnectionFactory.createConnection(config);Admin admin = connection.getAdmin();

一旦创建了Admin对象后,可以通过下面的代码创建数据表了:

String tableName = "users";if (!admin.isTableAvailable(TableName.valueOf(tableName))) {    HTableDescriptor hbaseTable = new HTableDescriptor(TableName.valueOf(tableName));    hbaseTable.addFamily(new HColumnDescriptor("name"));    hbaseTable.addFamily(new HColumnDescriptor("contact_info"));    hbaseTable.addFamily(new HColumnDescriptor("personal_info"));    admin.createTable(hbaseTable);}

会严重是否存在“users”名的数据表,如果此表不存在就会创建一个新表,列名包括:家庭名、联系信息和个人信息。

完整的程序如下:

package com.wordpress.khodeprasad;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.HColumnDescriptor;import org.apache.hadoop.hbase.HTableDescriptor;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.Admin;import org.apache.hadoop.hbase.client.Connection;import org.apache.hadoop.hbase.client.ConnectionFactory;/*** @author Prasad Khode**/public class CreateTable {    public static void main(String[] args) {        CreateTable object = new CreateTable();        object.createTable();    }    public void createTable() {        Configuration config = HBaseConfiguration.create();        config.set("hbase.zookeeper.quorum", "127.0.0.1");        config.set("hbase.zookeeper.property.clientPort", "2181");        Connection connection = null;        Admin admin = null;        try {            connection = ConnectionFactory.createConnection(config);            admin = connection.getAdmin();            String tableName = "users";            if (!admin.isTableAvailable(TableName.valueOf(tableName))) {                HTableDescriptor hbaseTable = new HTableDescriptor(TableName.valueOf(tableName));                hbaseTable.addFamily(new HColumnDescriptor("name"));                hbaseTable.addFamily(new HColumnDescriptor("contact_info"));                hbaseTable.addFamily(new HColumnDescriptor("personal_info"));                admin.createTable(hbaseTable);            }        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                if (admin != null) {                    admin.close();                }                if (connection != null && !connection.isClosed()) {                    connection.close();                }            } catch (Exception e2) {                e2.printStackTrace();            }        }    }}
0 0
原创粉丝点击