spark将Parquet数据写入配置单元的作业在Parquet使用snappy算法而不是gzip时卡在了最后一个任务中

vd2z7a6w  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(364)

我正在把一个Parquet文件从dataframe写到hive。当我使用snappy作为Parquet压缩算法时,我可以看到除1个任务外的所有任务都在写作阶段迅速完成(例如30/31)。最后一个任务需要很长时间才能完成,因为有很多gc过程。
当我使用gzip作为Parquet压缩算法时,一切都会好起来的。
我想知道两种压缩算法的区别。

7gyucuyw

7gyucuyw1#

gzip自然受到hadoop的支持。gzip基于deflate算法,它是lz77和哈夫曼编码的结合。
gzip压缩比snappy使用更多的cpu资源,但提供了更高的压缩比。
gzip通常是不常访问的冷数据的好选择。
对于频繁访问的热数据,snappy是更好的选择。
snappy格式是可拆分的,但是gzip不是。可拆分性与hbase数据无关。
参考:hadoop中的数据压缩

相关问题