如果我们有数百万个小文本文件,其大小从几KB到几MB不等,那么HDFS和HBASE中的哪一个需要较少的处理时间? 还有更少的内存消耗?
答案 0 :(得分:4)
这是一个高级别的问题。缺少有关数据类型的信息。但是,一般而言,我们需要在决定存储位置等事项时牢记以下事项?在HDFS或HBase中:
由于我们的文件质量较小,因此将其存储在HDFS中存在一些问题。
如果未正确配置块大小(输入拆分大小),则为full 数据局部性和并行处理的潜力不会 利用。有关Input split和。之间关系的更多信息 块大小,请参考 Split size vs Block size in Hadoop
因此,除非您有充分理由这样做,否则几乎不会将其存储在HDFS中。
如果我们选择存储在HDFS中,我们可以将文件合并在一起,使其足够大到块大小吗?这对性能有何影响?
然而,HBase克服了这些问题,因为它将数据存储在表中,也通过压缩方法存储。但在将HBase作为存储平台之前,我们需要考虑以下几点:如果我们对所有这些问题都有答案,我们可以得出结论。建议您在这些方面回顾您的数据并做出谨慎的决定。这不是解决方案,而是您应该思考和继续的方式或方向。
答案 1 :(得分:0)
如果您有数百万个小文件,从KB到MB不等,HDFS和MapReduce作业对于处理数据来说太过分了。
HBase 是解决此问题的另一种方法。但您还有其他选择,例如 Hadoop存档文件(HAR)和序列文件。
参考这些相关的SE问题: