Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compression 关于Hadoop和压缩输入文件的基本问题_Compression_Hadoop - Fatal编程技术网

Compression 关于Hadoop和压缩输入文件的基本问题

Compression 关于Hadoop和压缩输入文件的基本问题,compression,hadoop,Compression,Hadoop,我已经开始研究Hadoop了。如果我的理解是正确的,我可以处理一个非常大的文件,它会在不同的节点上被分割,但是如果文件被压缩,那么文件就不能被分割,而wold需要由单个节点处理(有效地破坏了运行mapreduce或并行机集群的优势) 我的问题是,假设上述假设是正确的,是否可以将一个大文件手动拆分为固定大小的块或每日块,对其进行压缩,然后传递压缩输入文件列表以执行mapreduce?是的,可以有一个大的压缩文件,也可以有多个压缩文件(使用-files或api指定多个文件) TextInputFor

我已经开始研究Hadoop了。如果我的理解是正确的,我可以处理一个非常大的文件,它会在不同的节点上被分割,但是如果文件被压缩,那么文件就不能被分割,而wold需要由单个节点处理(有效地破坏了运行mapreduce或并行机集群的优势)


我的问题是,假设上述假设是正确的,是否可以将一个大文件手动拆分为固定大小的块或每日块,对其进行压缩,然后传递压缩输入文件列表以执行mapreduce?

是的,可以有一个大的压缩文件,也可以有多个压缩文件(使用-files或api指定多个文件)

TextInputFormat及其子体应自动处理.gz压缩文件。您还可以实现自己的(将输入文件拆分为块进行处理)和(一次从块中提取一条记录)


通用协作的另一种替代方法可能是使用压缩文件系统(例如带有压缩补丁的ext3、zfs、compFUSEd或FuseCompress…)

您可以使用bz2作为压缩编解码器,这种格式也可以拆分。

考虑使用LZO压缩。它是可拆分的。这意味着一个大的.LZO文件可以由许多映射程序处理。Bzip2可以做到这一点,但速度很慢


Cloudera对此颇有微词。对于MapReduce,LZO在压缩比和压缩/解压缩速度之间取得了很好的平衡。

BZIP2在hadoop中是可拆分的-它提供了很好的压缩比,但从CPU时间和性能来看,并没有提供最佳结果,因为压缩非常消耗CPU

LZO在hadoop中是可拆分的-利用您有可拆分的压缩LZO文件。您需要有外部.LZO.index文件才能并行处理。该库提供了以本地或分布式方式生成这些索引的所有方法


LZ4在hadoop中是可拆分的-利用您有可拆分的压缩4mc文件。您不需要任何外部索引,您可以使用提供的命令行工具或Java/C代码生成存档,在hadoop内部/外部。4mc在hadoop LZ4上以任何级别的速度/压缩比提供:从fast m开始ode达到500 MB/s的压缩速度,高/超模式提供了更高的压缩比,几乎可以与GZIP one媲美。

LZO不是单独可拆分的。您必须运行单独的进程来索引LZO文件,以便压缩块与输入拆分正确对齐。请参阅页面末尾的一行小婴儿:@Luis But请记住,LZO是GPL授权的,因此常规条款和条件适用。另一种选择是使用谷歌的Snappy压缩。默认情况下,它与Hadoop一起打包(我使用0.20.x)默认情况下,Apache Flume等其他生态系统框架也能很好地理解它。LZ4在Hadoop中不可拆分。4mc是一种使用LZ4的文件格式,很像LZ4有自己的帧格式,而4mc文件格式是可拆分的。区分这一点很重要:实际的.LZ4文件在Hadoop中不可拆分:。