3

最近使用hadoop批量加载将数据放入hbase 首先调用HDFS API将数据写入hadoop hdfs中的文件,总共7000,000行数据,大小为503MB。其次,我使用org.apache.hadoop.hbase.mapreduce.ImportTsvorg.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles将数据放入 hbase。

我做的最重要的事情是使用bulkload工具将数据放入hbase,完成bulkload后,我发现hbase表是1.96GB。hdfs复制是1。我不知道为什么。

4

1 回答 1

3

存储数据有一些开销,因为您必须存储列限定符的名称等,但不是 4 倍的开销。我有一些想法,但绝对不介意听到更多关于数据性质的细节,也许还有桌子上的统计数据。

  • 您是否在表中打开了压缩?如果数据是在 HDFS 中压缩的,但是在加载之后,它没有被压缩,这可能会导致问题。
  • 也许 HBase 出于某种原因不尊重您的复制因素。去做一个hadoop fs -dus /path/to/hbase/table/data,看看它会返回什么。
  • 你的列限定符很大吗?例如,colfam1:abc它非常小,不会占用太多空间,但colfam1:abcdefghijklmnopqrstuvwxyz在宏伟的计划中会占用相当多的空间!
于 2012-12-13T21:49:36.880 回答