hdfs与hbase:哪一个在数百万个小文本文件上性能更好?

aydmsdu9  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(354)

如果我们有数百万个大小从几kb到几mb不等的小文本文件,那么hdfs和hbase中哪一个需要更少的处理时间?而且内存消耗更少?

hmmo2u0o

hmmo2u0o1#

这是一个高层次的问题。缺少有关数据类型的信息。然而,一般来说,我们需要记住以下事项,同时决定在哪里存储?在hdfs或hbase中:
由于我们有小文件和大质量的文件,在hdfs中存储它有两个问题。
名称节点上的元数据将很高
如果块大小(输入拆分大小)配置不当,将无法充分利用数据局部性和并行处理的潜力。有关输入拆分和块大小之间关系的更多信息,请参阅hadoop中的拆分大小与块大小。
因此,除非你有充分的理由这样做,否则将它存储在hdfs中几乎是不可能的。
如果我们选择存储在hdfs中,我们可以将文件合并在一起,使其足够大到块大小吗?这对性能有何影响?
然而,hbase克服了这些问题,因为它将数据存储在表中,还通过压缩方法。但在将hbase作为存储平台之前,我们需要考虑以下几点:
手头的数据有适合hbase的模式吗?或者数据有模式吗?
我们能否构造一个适用于跨hbase区域服务器的数据的行键?
如果我们对所有这些问题都有答案,我们就可以得出结论。建议您回顾这些行上的数据,并做出谨慎的决定。这不是一个解决方案,而是一种你应该思考和前进的方式或方向。

yxyvkwin

yxyvkwin2#

如果您有数百万个从kbs到mbs不等的小文件,那么hdfs和mapreduce job在处理数据方面就太过繁琐了。
hbase是解决这个问题的一种替代方法。但是您还有其他的选择,比如hadoop归档文件(har)和序列文件。
请参阅以下相关问题:
解析数百万个小xml文件
hbase与hadoop/hdfs的区别

相关问题