Apache Hadoop:将压缩数据插入HDFS

时间:2016-06-23 13:42:08

标签: compression text-files hdfs hdfstore

我需要将100个文本文件上传到HDFS,以便使用Apache Pig进行一些数据转换。

在您看来,最佳选择是什么:

a)压缩所有文本文件并仅上传一个文件

b)单独加载所有文本文件?

1 个答案:

答案 0 :(得分:0)

这取决于您的文件大小,群集参数和处理方法。

如果文本文件的大小与HDFS块大小相当(即块大小= 256 MB,文件大小= 200 MB),则按原样加载它们是有意义的。

如果你的文本文件非常小,那么就会有典型的HDFS&小文件问题 - 每个文件将占用1个hdfs块(非物理),因此NameNode(处理元数据)将在管理大量块时遭受一些开销。要解决此问题,您可以将文件合并为单个文件,使用hadoop存档(HAR)或某些自定义文件格式(例如,序列文件)。

如果使用自定义格式,则必须进行额外的处理工作 - 需要使用自定义输入格式。

在我看来,100对于显着影响NameNode性能并不是那么多,因此两种选择似乎都是可行的。