Hadoop 如果压缩类型是RECORD而不是block,我们是否需要创建一个索引文件(使用lzop)?

Hadoop 如果压缩类型是RECORD而不是block,我们是否需要创建一个索引文件(使用lzop)?,hadoop,hadoop-lzo,Hadoop,Hadoop Lzo,据我所知,需要一个索引文件来使输出可拆分。如果mapred.output.compression.type=SequenceFile.CompressionType.RECORD,我们还需要创建索引文件吗?简短回答: RECORD and BLOCK compression.type属性适用于序列文件,而不适用于简单文本文件(可以使用lzo、gzip或bz2…)单独压缩) 更多信息: LZO是一种压缩编解码器,它提供了比gzip更好的压缩和解压缩速度,并且具有拆分功能。LZO允许这样做,因为它由

据我所知,需要一个索引文件来使输出可拆分。如果mapred.output.compression.type=SequenceFile.CompressionType.RECORD,我们还需要创建索引文件吗?

简短回答:

RECORD and BLOCK compression.type属性适用于序列文件,而不适用于简单文本文件(可以使用lzo、gzip或bz2…)单独压缩)

更多信息:

LZO是一种压缩编解码器,它提供了比gzip更好的压缩和解压缩速度,并且具有拆分功能。LZO允许这样做,因为它由许多更小(~256K)的压缩数据块组成,允许作业沿块边界分割,而gzip则将整个文件的字典写在顶部

将mapred.output.compression.codec指定为LzoCodec时,hadoop将生成.lzo_deflate文件。它们包含没有任何头的原始压缩数据,不能使用
lzop-d
命令进行解压缩。Hadoop可以在映射阶段读取这些文件,但这会让你的生活变得艰难

当您指定LzopCodec作为compression.codec时,hadoop将生成.lzo文件。这些文件包含头文件,可以使用
lzop-d

但是,默认情况下,.lzo和.lzo_deflate文件都不可拆分。这就是LzoIndexer发挥作用的地方。它生成一个索引文件,告诉您记录边界在哪里。这样,多个映射任务可以处理同一个文件

有关更多信息,请参阅和