gpt4 book ai didi

java - 如何创建 2+ HBase 表?

转载 作者:可可西里 更新时间:2023-11-01 15:20:14 29 4
gpt4 key购买 nike

我正在尝试创建 2 个 HBase 表,但遇到了一些问题。这是我到目前为止所拥有的。表未正确创建。我能在网上找到的唯一教程和帮助是关于创建一个 HBase 表而不是 2 个以上的 HBase 表。

更新:

  • 我使用的是 HortonWorks Sandbox HDP 2.3.2。
  • 我不确定如何在不调用表描述符表两次来创建假期表和组表的情况下创建 2 个表
  • 我使用的教程是:https://www.tutorialspoint.com/hbase/hbase_create_table.htm

    公共(public)类 TableCreation{

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

    Configuration config = HBaseConfiguration.create();
    HBaseAdmin admin = new HBaseAdmin(config);

    HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf("holidays"));

    tableDescriptor.addFamily(new HColumnDescriptor("observed"));
    tableDescriptor.addFamily(new HColumnDescriptor("date"));

    admin.createTable(tableDescriptor);

    HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf("group"));

    tableDescriptor.addFamily(new HColumnDescriptor("type"));
    tableDescriptor.addFamily(new HColumnDescriptor("size"));
    admin.createTable(tableDescriptor);
    }

最佳答案

我设法编写了一些有效的代码,并正确插入了 2 个带列的表。我正在使用 Cloudera CDH5 Hadoop 发行版。

这是一个创建带有列族的表的示例类:

 public class HBaseOps {

public static void createTable(Connection conn, String tableName, String... families) throws IOException {

Admin admin = conn.getAdmin();
HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf(tableName));

for(String family : families) {
tableDescriptor.addFamily(new HColumnDescriptor(family));
}
admin.createTable(tableDescriptor);
}
}

您可以调用上面的代码来创建表:

    //Connect to hbase
Configuration config = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(config);

//Create table
final String TABLE1 = "table1";
final String FAMILY1 = "family1";
final String FAMILY2 = "family2";
HBaseOps.createTable(connection, TABLE1, FAMILY1, FAMILY2);

//Create table
final String TABLE2 = "table2";
final String FAMILY3 = "family3";
final String FAMILY4 = "family4";
HBaseOps.createTable(connection, TABLE2, FAMILY3, FAMILY4);

您可以在我的 github 上找到完整的示例: Full Code on Github我使用 hbase shell 进行了测试,表已正确创建。

关于java - 如何创建 2+ HBase 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54963178/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com