HBase schemas 可以通过 The Apache HBase Shell 或者 Java API Admin 来创建或者更新。
当进行列族的修改时,必须禁用表,比如:
Configuration config = HBaseConfiguration.create();
Admin admin = new Admin(conf);
TableName table = TableName.valueOf("myTable");
admin.disableTable(table);
HColumnDescriptor cf1 = ...;
admin.addColumn(table, cf1); // adding new ColumnFamily
HColumnDescriptor cf2 = ...;
admin.modifyColumn(table, cf2); // modifying existing ColumnFamily
admin.enableTable(table);
阅读 client dependencies 获取关于配置客户端连接的更多信息。
0.92.x 可以支持在线 scheme 变更, 但是 0.90.x 版本需要禁用表。
当表或者列族被修改时(比如 region 大小,block 大小),这些更改会在下一次 major 合并时生效,同时 StoreFiles 会被重写。
阅读 store 获取更多关于 StoreFiles 的信息。