pyspark - Spark 应用程序在 1 小时后在 EMR 中突然被 KILLED 并且 livy session 过期。原因和解决方案是什么?

标签 pyspark amazon-emr livy

我在 AWS EMR 集群上使用 JupyterHub。我正在使用 EMR 版本 5.16

我使用 pyspark3 notebook 提交了一个 spark 应用程序。 我的应用程序正在尝试将 1TB 数据写入 s3。 我正在使用 EMR 的自动缩放功能来缩放我们的任务节点。

硬件配置: 1.主节点:32GB内存,16核 2.核心节点:32GB内存,16核 3.任务节点:16GB,每个8核。 (任务节点扩容15个)

我观察到 Spark 应用程序在运行 50 到 60 分钟后被终止。 我试过调试: 1. 我的集群仍有扩展空间。所以这不是资源短缺的问题。 2. Livy session 也被杀死。 3. 在作业日志中,我看到错误消息 RECVD TERM SIGNAL "Shutdown hook 收到了”

请注意: 1. 我一直保持:spark.dynamicAllocation.enabled=true" 2. 我在 Jupiter hub 中使用 yarn fair scheduler 和用户模拟

你能帮我理解问题和解决方案吗?

最佳答案

我认为我遇到了同样的问题,并且由于这个 answer 找到了解决方案.

问题来自 Livy 配置参数 livy.server.session.timeout,该参数默认将 session 超时设置为 1 小时。

您应该通过将以下行添加到 EMR 集群的配置中来进行设置。

[{'classification': 'livy-conf','Properties': {'livy.server.session.timeout':'5h'}}]

这为我解决了这个问题。

关于pyspark - Spark 应用程序在 1 小时后在 EMR 中突然被 KILLED 并且 livy session 过期。原因和解决方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52227156/

相关文章:

python - PySpark 按条件计算值

sql - PySpark - 如何使用连接更新 Dataframe?

apache-spark - 在Spark中获取组的最后一个值

perl - 用于安装 Perl 模块的 Elastic MapReduce Bootstrap

Hadoop Yarn 容器日志丢失

apache-spark - 从AWS S3读取pyspark文件不起作用

python - 如何从 s3 获取数据并对其进行一些处理? python 和博托

apache-spark - 如何使用 AirFlow 提取使用 Apache Livy 批量 POST 方法提交的 Spark 作业客户端日志

apache-spark - 在 EMR 上的 PySpark 中运行自定义 Java 类