Java 如何创建2+;HBase表?
我试图创建2个HBase表,但遇到了一些问题。这是我到目前为止所拥有的。未正确创建表。我能在网上找到的唯一教程和帮助是创建一个HBase表,而不是2个以上的HBase表 更新:Java 如何创建2+;HBase表?,java,hadoop,hbase,Java,Hadoop,Hbase,我试图创建2个HBase表,但遇到了一些问题。这是我到目前为止所拥有的。未正确创建表。我能在网上找到的唯一教程和帮助是创建一个HBase表,而不是2个以上的HBase表 更新: 我使用的是HortonWorks沙盒HDP2.3.2 我不知道如何在不调用表描述符表两次的情况下创建两个表,从而创建holiday表和group表 我使用的教程是: 公共类表格创建{ public static void main(String[] args) throws IOException { Con
- 我使用的是HortonWorks沙盒HDP2.3.2李>
- 我不知道如何在不调用表描述符表两次的情况下创建两个表,从而创建holiday表和group表
- 我使用的教程是:
公共类表格创建{
}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); }
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);
您可以在my github上找到完整的示例:
我使用hbase shell进行了测试,并正确创建了表。您使用的是哪个版本的hbase客户端api?我可以在代码中看到一些问题(config、admin和tableDescriptor声明了两次)。我想知道你的问题是否来自这里,然后再进一步研究。此外,有些api已被弃用,您可能需要更新您的代码。您还收到了什么错误?我已在上面列出了更新:1。我使用的是HortonWorks沙盒HDP2.3.2。2.我不知道如何在不调用表描述符表两次来创建holiday表和group表3的情况下创建2个表。我使用的教程是: