gpt4 book ai didi

java - Hbase:数据未按照关键命名规则划分为区域

转载 作者:行者123 更新时间:2023-11-30 06:09:16 29 4
gpt4 key购买 nike

我正在实现一个 java 程序,该程序读取 parquet 文件并将数据加载到 HBase 表中。该表分为 5 个区域,名称分别为(‘a’、‘f’、‘k’、‘p’、‘u’)。行键将类似于以下格式:a-xxxxxx, f-xxxxxx ... 其中 xxxxxx 是随机的 6 个字符的字符串。然而,当我列出表区域时,我发现尽管行键前缀多种多样,但所有数据都仅存储在一个区域中。

这是我创建表及其区域的代码部分:

HTableDescriptor htable = new HTableDescriptor(tabname);
htable.addFamily(new HColumnDescriptor(COL_FAMILY));
if (hbaseAdmin.tableExists(tabname)) {
hbaseAdmin.disableTable(tabname);
hbaseAdmin.deleteTable(tabname);
}
byte[][] splits = new byte[][] {
Bytes.toBytes('a'),
Bytes.toBytes('f'),
Bytes.toBytes('k'),
Bytes.toBytes('p'),
Bytes.toBytes('u')
};
hbaseAdmin.createTable(htable, splits);

但是插入一些数据后,当我列出表区域时,我从 HBase shell 获得以下输出。 HBase output of list_regions command

任何帮助将不胜感激!谢谢大家!

最佳答案

我解决了这个问题:问题是由区域分割定义引起的,解决方案是将字符替换为字符串,如下所示: byte[][] splits = new byte[][] { Bytes.toBytes("a"), Bytes.toBytes("f"), Bytes.toBytes("k"), Bytes.toBytes("p"), Bytes.toBytes("u") };

关于java - Hbase:数据未按照关键命名规则划分为区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50622289/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com