HBase吃掉了我的空间?

时间:2013-03-04 08:17:50

标签: compression hbase space

我目前正在使用HBase& HDFS存储我的数据。我的第一个实验是将12GB txt文件(无压缩)中的数据导入HBase'test'表,复制设置为3(HDFS服务器)。

但令我惊讶的是,在导入后,NameNode报告(50070)说“DFS已用:390.93GB”!我刚刚输入了12GB数据,但HBase占用了我的390GB空间。这对我没有任何意义。那么有人可以解释如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

首先想到的是如何将数据存储在列族中。具体来说,如果您从文件中读取一行数据,然后将其存储到长度为M(i)的N列列族中,则至少会产生SUM(M(i))的开销。对于每行的1< = i< = N +(标题+时间戳/等)。如果要节省一些空间,请使用小名称命名列。

除此之外,还有WAL日志,中间拆分和非合并数据文件(未完全压缩/合并)。例如,如果您导入数据几次(无论出于何种原因,让我们说您的导入失败,或者您在中间停止它以重新开始,因为您认为有更好/更快的方法来执行某些操作),那么,该数据在压缩运行之前,它也存在于H文件中。

如果您认为列命名不是占用空间的话,那么请尝试在列族/表上运行主要压缩。等到所有任务都完成后再次检查你的足迹......

希望能提供一些见解吗?祝你好运!