我正在把一个Parquet文件从dataframe写到hive。当我使用snappy作为Parquet压缩算法时,我可以看到除1个任务外的所有任务都在写作阶段迅速完成(例如30/31)。最后一个任务需要很长时间才能完成,因为有很多gc过程。
当我使用gzip作为Parquet压缩算法时,一切都会好起来的。
我想知道两种压缩算法的区别。
我正在把一个Parquet文件从dataframe写到hive。当我使用snappy作为Parquet压缩算法时,我可以看到除1个任务外的所有任务都在写作阶段迅速完成(例如30/31)。最后一个任务需要很长时间才能完成,因为有很多gc过程。
当我使用gzip作为Parquet压缩算法时,一切都会好起来的。
我想知道两种压缩算法的区别。
1条答案
按热度按时间7gyucuyw1#
gzip自然受到hadoop的支持。gzip基于deflate算法,它是lz77和哈夫曼编码的结合。
gzip压缩比snappy使用更多的cpu资源,但提供了更高的压缩比。
gzip通常是不常访问的冷数据的好选择。
对于频繁访问的热数据,snappy是更好的选择。
snappy格式是可拆分的,但是gzip不是。可拆分性与hbase数据无关。
参考:hadoop中的数据压缩