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

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

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

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

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

  1. 1,101,5.0 
  2. 1,102,3.0 
  3. 1,103,2.5 
  4. 2,101,2.0 
  5. 2,102,2.5 
  6. 2,103,5.0 
  7. 2,104,2.0 
  8. 3,101,2.5 
  9. 3,104,4.0 
  10. 3,105,4.5 
  11. 3,107,5.0 
  12. 4,101,5.0 
  13. 4,103,3.0 
  14. 4,104,4.5 
  15. 4,106,4.0 
  16. 5,101,4.0 
  17. 5,102,3.0 
  18. 5,103,2.0 
  19. 5,104,4.0 
  20. 5,105,3.5 
  21. 5,106,4.0 

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

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

相关推荐