Compression ApacheHadoop:将压缩数据插入HDFS

Compression ApacheHadoop:将压缩数据插入HDFS,compression,text-files,hdfs,hdfstore,Compression,Text Files,Hdfs,Hdfstore,我需要上传100个文本文件到HDFS中,用ApachePig进行一些数据转换 在您看来,什么是最好的选择: a) 压缩所有文本文件并只上载一个文件 b) 单独加载所有文本文件?这取决于文件大小、群集参数和处理方法 如果文本文件的大小与HDFS块大小相当(即块大小=256 MB,文件大小=200 MB),则按原样加载它们是有意义的 如果文本文件非常小,则会出现典型的HDFS和小文件问题-每个文件将占用1个HDFS块(不是物理上的),因此NameNode(处理元数据)将在管理大量块时承受一些开销。要

我需要上传100个文本文件到HDFS中,用ApachePig进行一些数据转换

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

a) 压缩所有文本文件并只上载一个文件


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

这取决于文件大小、群集参数和处理方法

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

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

如果使用自定义格式,您将不得不进行额外的处理工作-需要使用自定义输入格式


在我看来,100对NameNode的性能影响不大,所以这两个选项似乎都是可行的

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

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

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

如果使用自定义格式,您将不得不进行额外的处理工作-需要使用自定义输入格式

在我看来,100对NameNode的性能影响不大,所以这两个选项似乎都是可行的