HBase创建表的Java代码

HBase 1.x和2.x版本的建表的java代码如下:

	/**
     * @Description 创建HBase表
     * @Params []
     * @Return
     * @Author zhangbinu
     */
    @PostConstruct
    public synchronized boolean createHBaseTable() throws IOException {
        boolean isSuccess = false;
        String tableName = "您想要创建的表名";
        TableName table = TableName.valueOf(tableName);
        Admin admin = HBaseUtil.connection.getAdmin();
        if (!admin.tableExists(table)) {
            log.info("show: HBase中不存在表[" + table + "],开始创建...");
            //HBase 1.x版本建表
            HTableDescriptor hbaseTable = new HTableDescriptor(table);
            hbaseTable.addFamily(new HColumnDescriptor("info").setTimeToLive(180 * 24 * 60 * 60));
            admin.createTable(hbaseTable);
            //HBase 2.x版本建表
            //TableDescriptorBuilder tableDescriptor = TableDescriptorBuilder.newBuilder(table);
            //tableDescriptor.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("info")).setTimeToLive(180 * 24 * 60 * 60).build());
            //admin.createTable(tableDescriptor.build());
            log.info("show: HBase创建表[" + table + "]成功。");
            isSuccess = true;
        } else {
            log.info("show: HBase中已存在表[" + table + "],不需要再创建。");
        }
        return isSuccess;
    }

HBaseUtil连接工具类如下:

/**
 * Created by zhangbn on 2019/11/20.
 */
public class HBaseUtil {

    static Logger log = LoggerFactory.getLogger(HBaseUtil.class);

    /**
     * 连接池对象
     */
    public static Connection connection;
    private static final String ZK_QUORUM = "hbase.zookeeper.quorum";
    private static final String ZK_CLIENT_PORT = "hbase.zookeeper.property.clientPort";
    private static final String ZK_POS = "hadoop01,hadoop02,hadoop03";
    private final static String ZK_PORT_VALUE = "2181";

    /**
     * @Description 静态构造
     * @Params
     * @Return
     * @Author zhangbn
     */
    static {
        Configuration configuration = HBaseConfiguration.create();
        configuration.set("hbase.rootdir", "hdfs://nncluster/user/hbase");
        configuration.set(ZK_QUORUM, ZK_POS);
        configuration.set(ZK_CLIENT_PORT, ZK_PORT_VALUE);
        configuration.set("hbase.client.ipc.pool.type", "RoundRobin");
        configuration.set("hbase.client.ipc.pool.size", "100");
        try {
            connection = ConnectionFactory.createConnection(configuration);
        } catch (IOException e) {
            log.error(e.toString());
        }
    }

}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Java API创建HBase表的示例代码: ```java import org.apache.hadoop.conf.Configuration; 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.io.compress.Compression.Algorithm; import org.apache.hadoop.hbase.regionserver.BloomType; import org.apache.hadoop.hbase.util.Bytes; public class HBaseCreateTableExample { private static Configuration conf = null; private static Connection conn = null; static { conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum", "localhost"); // ZooKeeper的地址 conf.set("hbase.zookeeper.property.clientPort", "2181"); // ZooKeeper的端口号 try { conn = ConnectionFactory.createConnection(conf); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { try { Admin admin = conn.getAdmin(); // 获取Admin对象 // 构建表描述符 TableName tableName = TableName.valueOf("test_table"); TableDescriptor tableDescriptor = TableDescriptorBuilder.newBuilder(tableName) .setColumnFamily(TableDescriptorBuilder.newBuilder(Bytes.toBytes("cf1")) .setCompressionType(Algorithm.NONE).setBloomFilterType(BloomType.ROWCOL).build()) .setColumnFamily(TableDescriptorBuilder.newBuilder(Bytes.toBytes("cf2")) .setCompressionType(Algorithm.NONE).setBloomFilterType(BloomType.ROWCOL).build()) .build(); // 创建表 admin.createTable(tableDescriptor); admin.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 在这个示例,我们创建了一个HBaseConfiguration对象,并通过它设置了ZooKeeper的地址和端口号。然后我们通过ConnectionFactory来创建一个Connection对象。接着我们使用该Connection对象来获取Admin对象,然后构建了一个TableDescriptor对象,里面包含了表名以及列族的定义。最后我们使用Admin对象来创建表。最后我们关闭了Admin和Connection对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值