拆分后将.tar.gz转换为序列文件tar.gz

Convert .tar.gz to sequence file after splitting tar.gz

是否可以使用 map reduce 将 1 个 .tar.gz 文件转换为 1 个序列文件? 到目前为止,遇到了所有在不拆分 tar.gz 或从本地文件系统执行此操作的解决方案。

http://qethanm.cc/projects/forqlift/examples/

假设您的 gzip 压缩文件存储在大小为 1 GB 的 HDFS 中。 HDFS 块大小为 64 MB,文件将存储为 16 个块。但是,为每个块创建一个拆分不会 工作,因为不可能从 gzip 流中的任意点开始读取,并且 因此 map 任务不可能独立于其他任务读取其拆分。这 gzip 格式使用 DEFLATE 存储压缩后的数据,DEFLATE 存储数据 作为一系列压缩块。问题是每个块的开始不是 以任何允许 reader 定位在任意点的方式进行区分 流前进到下一个块的开头,从而同步自身 随着流。因此,gzip 不支持拆分。