【发布时间】:2017-03-11 13:15:22
【问题描述】:
目前我正在使用Sequence File 来压缩我们现有的 HDFS 数据。
现在我有两个选项可以将此 Sequence File 存储为
- 单个大文件,这意味着所有记录都转到此文件。
- 多个小文件,每个文件大小与HDFS块大小(128MB)完全匹配
我们知道,HDFS 文件存储为块,每个块都转到一个映射器。因此,我认为针对该序列文件进行 MR 处理时没有什么不同。
我知道选项二的唯一缺点是 namenode 需要更多开销来维护这些文件,而选项一只有一个文件。
我对这两个选项感到困惑,因为我看到太多推荐的文章
- 使您的 HDFS 文件的大小尽可能与块大小匹配。
- 尽可能将小文件合并为一个大文件。
谁能指出正确的方法来做到这一点?哪个更好?这两个选项有什么优点/缺点吗?谢谢!
【问题讨论】: