[英]How can I create 2+ HBase tables?
我正在嘗試創建 2 個 HBase 表,但遇到了一些問題。 這是我到目前為止所擁有的。 表未正確創建。 我可以在網上找到的唯一教程和幫助是創建一個 HBase 表而不是 2 個以上的 HBase 表。
更新:
我使用的教程是: https : //www.tutorialspoint.com/hbase/hbase_create_table.htm
公共類表創建{
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 上找到完整示例: Github 上的完整代碼我使用 hbase shell 進行了測試,並且表已正確創建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.