Мне удалось написать некоторый код, который работает и правильно вставляет 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 и таблицы созданы правильно.