u013797304
登徒梦
2017-07-25 08:03

使用spark2.1进行mysql2hive数据同步job会卡在最后一个task上并不断GC

10
  • hive
  • spark
  • snappy
  • parquet

备注:

  • job 0 :从Mysql中拖数据在hdfs中建立临时表(parquet文件)
  • job 1 : 将临时表中的数据写入Hive中。
  • spark 1.6的parquet压缩格式默认为gzip。
  • spark 2.1的parquet压缩格式默认为snappy。

问题描述:

  • Mario依赖spark 1.6时,如表A(约3GB)运行流畅,执行时间 < 15Min.
  • Mario依赖spark 2.1时,如表A(约3GB)运行卡顿,执行时间>30 Min。原因是job 1会卡在最后一个task上并不断进行GC。

解决方案:

  • 将spark 2.1中parquet的压缩格式由snappy改为gzip后,问题解决。
  • 将spark1.6中parquet的压缩格式改为snappy,顺利执行,并未卡顿。

有待研究

  • 压缩格式产生如此影响的内在机制是什么?
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答