5 gb gzip文件如何读入内存并压缩?解压前是否需要将整个文件读入内存?我的问题是在hadoop中处理gziped文件,它不能像处理非压缩文件那样分割处理。bzip2呢?有什么不同吗?谢谢,
q0qdq0h21#
gzip文件是不可拆分的,这意味着在mapreduce中始终只有一个Map程序读取该文件,因此最佳做法是在将其放入hdfs之前先将其解压缩。bzipped文件是可拆分的,它们比gzipped文件更适合hadoop。
oprakyz72#
不,5 gb不需要读入内存。如果你愿意,你可以一次读入一个字节,然后用这种方式解压。gzip、bzip2和我所知道的所有压缩格式都是流格式。你可以读取少量的数据,然后按顺序解压,而不必在文件中倒转(zip格式的末尾有头信息,所以解压器通常从那里向后搜索条目。但是这不是必需的,而且.zip文件可以作为流进行压缩和解压缩。)
2条答案
按热度按时间q0qdq0h21#
gzip文件是不可拆分的,这意味着在mapreduce中始终只有一个Map程序读取该文件,因此最佳做法是在将其放入hdfs之前先将其解压缩。bzipped文件是可拆分的,它们比gzipped文件更适合hadoop。
oprakyz72#
不,5 gb不需要读入内存。如果你愿意,你可以一次读入一个字节,然后用这种方式解压。gzip、bzip2和我所知道的所有压缩格式都是流格式。你可以读取少量的数据,然后按顺序解压,而不必在文件中倒转(zip格式的末尾有头信息,所以解压器通常从那里向后搜索条目。但是这不是必需的,而且.zip文件可以作为流进行压缩和解压缩。)