如何将5 GB gzip压缩文件读入内存并进行压缩?在解压缩之前是否需要将整个文件读入内存?我的问题与处理Hadoop中的gziped文件有关,它不能像处理非压缩文件那样拆分处理。 怎么样bzip2?有什么不同吗?
谢谢,
答案 0 :(得分:2)
不,5 GB不需要读入内存。如果愿意,您可以一次读取一个字节,并以这种方式解压缩。 gzip,bzip2和我所知道的所有压缩格式都是流格式。您可以读取小位并以串行方式解压缩,而不必在文件中向后移动。 (.ZIP格式最后有标题信息,因此解压缩程序通常会从那里向后搜索条目。但这不是必需的,并且.ZIP文件可以作为流进行压缩和解压缩。)
答案 1 :(得分:0)
gzip文件不可拆分,这意味着在mapreduce中总会只有1个映射器读取该文件,因此最佳实践在将其放入HDFS之前首先解压缩。 bzipped文件可拆分,它们比gzip文件更适合Hadoop。