Hbase和PIG不存储所有行

时间:2017-02-14 05:20:08

标签: java hadoop hbase apache-pig

我正在使用PIG和HBASE将一些信息存储到DB中。我有一个从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)

有时甚至会错过一些行来存储。

任何人都可以澄清这个吗?

1 个答案:

答案 0 :(得分:0)

这就是HBase的设计方式!它只是根据系列附加数据:列名称。你为HBASE设置了一个KEY,然后如果4个记录带有相同的密钥,最终它只会存储一个记录。 对于Eg:

ID,NAME,AGE

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
  

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