为什么提交火花的作业使进程在群集(EMR)主节点上运行?

时间:2019-04-09 13:58:03

标签: apache-spark amazon-emr livy

我正在通过AWS lambda函数向Livy提交火花作业。作业将运行到驱动程序的末尾,但不会关闭。

如果将spark.stop()或sc.stop()添加到驱动程序的末尾,则火花作业将在YARN资源管理器上完成,并且Livy将报告成功。但是,在主节点上仍运行着一个livy进程,该进程占用约1.5Gb的内存。如果提交了许多作业,则最终将使用并保留所有主节点内存。

工作:

  • 从配置单元表中提取记录

  • 在主节点上收集这些记录,然后使用apache pdfbox将它们写入pdf文件

  • 将生成的PDF上载到S3

直接在集群上运行spark-submit会产生相同的结果,但是,如果在运行spark-submit作业的同时按ctrl + c,则主节点上的过程将结束。

我们期望作业在驱动程序结束时自行完成。否则,应在调用spark.stop()时调用关闭钩子。

1 个答案:

答案 0 :(得分:1)

您是否尝试在Spark配置上启用此标志? \(MyCons _) -> True

我观察到的是livy执行了spark-submit命令。并且上面的标志确保一旦纱线应用程序创建了applicationId

,命令就完成了