最近我使用hadoop批量加载将数据放入hbase首先,我调用HDFS API将数据写入hadoop hdfs中的文件,总共7000,000行数据,大小为503MB . 其次,我使用 org.apache.hadoop.hbase.mapreduce.ImportTsv 和 org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles 将数据放入hbase .
我做的最重要的事情是使用bulkload工具将数据放入hbase,完成bulkload后,我发现hbase表是1.96GB . hdfs复制是1.我不知道为什么 .
1 回答
存储数据有一些开销,因为您必须存储列限定符的名称等,但不是4x开销 . 我有一些想法,但绝对不介意听到有关数据性质的更多细节,也许还有关于桌面上的统计数据 .
你的 table 上是否开启了压缩?如果数据是在HDFS中压缩的,但是在加载后,它没有被压缩,这可能会导致问题 .
也许HBase无论出于何种原因都不尊重您的复制因素 . 去做一个
hadoop fs -dus /path/to/hbase/table/data
并看看它返回了什么 .你的专栏资格赛是否相当大?例如,
colfam1:abc
非常小,不会占用太多空间,但colfam1:abcdefghijklmnopqrstuvwxyz
将在宏观方案中占用相当多的空间!