HBase Admin createTable 创建表

HBase 版本: 1.2.1

package com.feng.hbase;

import java.io.IOException;

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;

/** 参考网页
 * http://www.tutorialspoint.com/hbase/hbase_create_table.htm
 * @author feng
 *
 */
public class CreateTable {

    public static void main(String[] args) {

        String talbeName = "test1";
        String columnFamily = "cf";
        String columnFamily1 = "cf1";

        Connection connection = null;
        Admin admin = null;

        try {
            Configuration config = HBaseConfiguration.create();
            config.set("hbase.zookeeper.quorum", "localhost");
            connection = ConnectionFactory.createConnection(config);
            admin = connection.getAdmin();

            boolean ifexists = admin.tableExists(TableName.valueOf(talbeName));

            if (!ifexists) {
                // 不存在则创建
                HTableDescriptor tableDesc = new HTableDescriptor(
                        TableName.valueOf(talbeName));
                HColumnDescriptor columnDesc = new HColumnDescriptor(
                        columnFamily);
                HColumnDescriptor columnDesc1 = new HColumnDescriptor(
                        columnFamily1);
                tableDesc.addFamily(columnDesc);
                tableDesc.addFamily(columnDesc1);

                admin.createTable(tableDesc);
                System.out.println(talbeName + " create success!");
            } else {
                System.out.println(talbeName + " is exists:" + ifexists);
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (admin != null) {
                try {
                    admin.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Sure, 下面是一个简单的Java代码片段,用于在HBase中创建一个名为“myTable”的表,其中包含两个列族“info”和“data”: ```java import org.apache.hadoop.hbase.HBaseConfiguration; 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; import org.apache.hadoop.hbase.client.TableDescriptor; import org.apache.hadoop.hbase.client.TableDescriptorBuilder; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder; public class CreateTable { public static void main(String[] args) throws Exception { // 创建HBase配置对象 org.apache.hadoop.conf.Configuration config = HBaseConfiguration.create(); // 创建HBase连接对象 Connection connection = ConnectionFactory.createConnection(config); // 创建HBase管理对象 Admin admin = connection.getAdmin(); // 定义表名 TableName tableName = TableName.valueOf("myTable"); // 定义列族 ColumnFamilyDescriptor infoColumnFamily = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("info")).build(); ColumnFamilyDescriptor dataColumnFamily = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data")).build(); // 定义表 TableDescriptor tableDescriptor = TableDescriptorBuilder.newBuilder(tableName) .setColumnFamily(infoColumnFamily) .setColumnFamily(dataColumnFamily) .build(); // 创建表 admin.createTable(tableDescriptor); // 关闭连接 admin.close(); connection.close(); } } ``` 请注意,这只是一个简单的示例代码,并且需要您自己设置HBase配置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值