我正在将一个 Parquet 文件从 DataFrame 写入 Hive。当我使用 snappy 作为 parquet 压缩算法时,我可以看到所有任务,但 1 个任务在写作阶段迅速完成(例如 30/31)。由于大量的 gc 进程,最后一项任务需要很长时间才能完成。
当我使用 gzip 作为 parquet 压缩算法时,一切都会正常。
我想知道两种压缩算法有什么不同。
最佳答案
gzip 自然受到 Hadoop 的支持。 gzip 基于 DEFLATE 算法,它结合了LZ77 和霍夫曼编码。
GZIP 压缩 比 Snappy 使用更多 CPU 资源,但提供更高的压缩率。
GZip 通常是冷数据 的好 选择,不经常访问。
Snappy 是经常访问的热点数据的更好选择。
Snappy 格式是可拆分,但 GZip 不是。可拆分性与 HBase 数据无关。
关于hadoop - 当 parquet 使用 Snappy 算法而不是 gzip 时,将 parquet 数据写入 hive 的 spark 作业卡在了最后一个任务中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45298236/