HDFS导出数据到HBase的ROW VALUE设置tricks

在做Hadoop的编程时,有时会用到HBase,常常涉及到把HDFS上面的数据导入到HBase中,在这个操作中,row的设置比较重要,如果几条记录的row值一样,同时列簇也一样的话,那么后面的数据就会覆盖前面的数据,比如这样:

HDFS导出数据到HBase的ROW VALUE设置tricks

比如现在有这样的一个操作:

我要把下面的数据导入HBase:

1,101,5.0 

1,102,3.0 

1,103,2.5 

2,101,2.0 

2,102,2.5 

2,103,5.0 

2,104,2.0 

3,101,2.5 

3,104,4.0 

3,105,4.5 

3,107,5.0 

4,101,5.0 

4,103,3.0 

4,104,4.5 

4,106,4.0 

5,101,4.0 

5,102,3.0 

5,103,2.0 

5,104,4.0 

5,105,3.5 

5,106,4.0 

如果拿第一列作为row值的话,那么最终导入的数据只有5条记录的信息了,如何才能把这21条记录全部导入HBase呢

第一个想法,把文件偏移值作为一条记录的row,这样每条记录的row就都不同了,这样可以,但是当文件偏大的时候,这样存储就会存在问题,而且row值之间相差很大,如果可以做到row是按照1递增的话,那么就可以减少很多数据了。

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/def3ff569037c84cdd5b9e5cea3c1e4e.html