【问题标题】:Hbase and PIG does not store all the rowsHbase 和 PIG 不存储所有行
【发布时间】:2017-02-14 05:20:07
【问题描述】:

我正在使用 PIG 和 HBASE 将一些信息存储到数据库中。我有一个从 DUMP 命令获取的数据集,它将在下一阶段存储在 HBASE 中。

DUMP somedata;

产生具有重复行的数据块,如下所示。

(rowkey, cf:1, cf:2 ....)
(12345::456::idea, 4567, deleted, 2.3, next, super)
(12345::456::idea, 4567, deleted, 2.3, next, super)
(12345::456::idea, 4567, deleted, 2.3, next, super)
(12345::456::idea, 4567, deleted, 2.3, next, super)
(12345::456::idea, 4568, deleted, 2.3, next, super)
(12345::456::idea, 4568, deleted, 2.3, next, super)
(12345::456::idea, 4568, deleted, 2.3, next, super)
(12345::456::idea, 4569, deleted, 2.3, next, super)
(12345::456::idea, 4569, deleted, 2.3, next, super)
(12345::456::idea, 4569, deleted, 2.3, next, super)

当使用 STORE 命令通过 HBaseStorage 存储一些数据时,所有重复的行都会被消除并存储不同的行。我不确定这是否是预期的行为。

上面只有它存储

(12345::456::idea, 4567, deleted, 2.3, next, super)
(12345::456::idea, 4568, deleted, 2.3, next, super)
(12345::456::idea, 4569, deleted, 2.3, next, super)

有时它确实会遗漏一些要存储的行。

谁能澄清一下?

【问题讨论】:

  • 你可以添加你的代码和hbase表定义吗?

标签: java hadoop hbase apache-pig


【解决方案1】:

这就是 HBase 的设计方式!它只是根据 family:column 名称附加数据。您为 HBASE 设置了一个 KEY ,那么如果 4 条记录带有相同的 key ,最终它将只存储一条记录。 例如:

身份证、姓名、年龄

1,SAM,20
2,RAJ,25
1,ANN, 27

如果 ID 设置为 KEY ,那么 HBASE 将只有

1 ANN 27,
2,RAJ,25

接下来如果你插入更多数据:

id,hometown
1,Bangalore
5 Jaipur

HABSE 将有:

1 ANN 27,Bangalore
2,RAJ,25
5 Jaipur

如果你想保存所有记录,你将不得不使用的概念 复合键

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多