HBase表拆分

时间:2013-12-29 10:46:59

标签: hbase

我正在尝试使用预分割创建一个HBase表。我将行键作为桶号,架构和pkid的组合。我可以使用{'00000000000000000', '10000000000000000', '20000000000000000',.....'f0000000000000000'}范围预先拆分表格。有没有办法可以使用自动拆分策略自动执行此操作。这将有助于我将模式名称包括在像'0MD5(schema1)000000000...', '1MD5(schema1)000000000...', ...,'fMD5(schema1)000000000...', '0MD5(schema2)000000000...',.....

这样的分割中

上述分裂将帮助我定义更好的设计。在这里,我们无法定义模式的数量,现在我们正在为10个模式创建表,并在将来创建更多模式。我们需要在此表中插入数据。所以我在分裂政策中寻找更好的设计。

我也找了KeyPrefixRegionSplitPolicy,看起来这会有所帮助,我对此并不十分肯定。

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:2)

KeyPrefixRegionSplitPolicy可以满足您的需求 这里有一些代码示例可能有帮助

    HBaseAdmin admin = new HBaseAdmin(conf);
    HTable hTable = new HTable(conf, "test");
    HTableDescriptor htd = hTable.getTableDescriptor();
    HTableDescriptor newHtd = new HTableDescriptor(htd);
    newHtd.setValue(HTableDescriptor.SPLIT_POLICY,     KeyPrefixRegionSplitPolicy.class.getName());
    newHtd.setValue("prefix_split_key_policy.prefix_length", "1");
    admin.disableTable("test");
    admin.modifyTable(Bytes.toBytes("test"), newHtd);
    admin.enableTable("test");

现在表'test'将通过rowkey前缀1

自动拆分带分区的区域