2016-06-23 62 views
1

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

在你看来,什么是最好的选择:

一)压缩所有文本文件,只上传一个文件,

b)加载所有的文本文件分别?

回答

0

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

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

如果您的文本文件非常小,那么会出现典型的HDFS &小文件问题 - 每个文件将占用1个hdfs块(不是物理上的),因此NameNode(处理元数据)在管理很多块。要解决这个问题,您可以将文件合并为一个文件,使用hadoop归档文件(HAR)或某些自定义文件格式(例如序列文件)。

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

在我看来,100并没有太大的影响NameNode的性能,所以这两个选项似乎是可行的。