Snappy是可拆分还是不可拆分?

Luc*_*ess 11 hadoop snappy

根据这个Cloudera帖子,Snappy IS可拆分.

对于MapReduce,如果您需要可拆分的压缩数据,BZip2,LZO和Snappy格式是可拆分的,但GZip不是.可拆分性与HBase数据无关.

但是从hadoop权威指南来看,Snappy是不可拆分的. 在此输入图像描述

网上也有一些令人信服的信息.有人说这是可拆分的,有些人说不是.

Roj*_*Sam 24

两者都是正确的,但在不同的层次.

根据Cloudera博客http://blog.cloudera.com/blog/2011/09/snappy-and-hadoop/

需要注意的一点是,Snappy旨在与
容器格式(如序列文件或Avro数据文件)一起使用,而不是直接用于纯文本,例如,因为后者不可拆分且无法在并行使用MapReduce.这与LZO不同,LZO可以索引LZO压缩文件以确定分割点,以便可以在后续处理中有效地处理LZO文件.

这意味着如果使用Snappy压缩整个文本文件,则该文件不可拆分.但是如果文件中的每个记录都是用Snappy压缩的,那么该文件可以是可拆分的,例如在带有块压缩的Sequence文件中.

更清楚的是,不一样:

<START-FILE>
  <START-SNAPPY-BLOCK>
     FULL CONTENT
  <END-SNAPPY-BLOCK>
<END-FILE>
Run Code Online (Sandbox Code Playgroud)

<START-FILE>
  <START-SNAPPY-BLOCK1>
     RECORD1
  <END-SNAPPY-BLOCK1>
  <START-SNAPPY-BLOCK2>
     RECORD2
  <END-SNAPPY-BLOCK2>
  <START-SNAPPY-BLOCK3>
     RECORD3
  <END-SNAPPY-BLOCK3>
<END-FILE>
Run Code Online (Sandbox Code Playgroud)

Snappy块不可拆分,但带有snappy块的文件是splittables.