如何解决 Amazon EMR 中的“session '0' not found”(找不到会话 '0')和“Error sending http request and maximum retry encountered”(发送 http 请求时出错,遇到了最大重试次数)错误?

1 分钟阅读
0

我想解决我在 Amazon EMR 上使用 Jupyter Notebook 运行 Apache Livy 应用程序时收到的错误。

解决方法

当您在 Amazon EMR 上使用 Jupyter Notebook 运行 Apache Livy 应用程序时,您可能会收到以下错误之一:

  • '404' 来自 ########,有效载荷错误:“找不到会话 '0'”
  • “由于致命错误,代码失败: 发送 http 请求时出错,遇到了最大重试次数。”

当您一直运行 Jupyter Notebook 会话直到其超时时,您会收到上述错误。要解决这些错误,请增加主节点上 /etc/livy/conf/livy.conf 中的 livy.server.session.timeout 属性的值。然后,重新启动 livy-server

您可以在正在运行的 Amazon EMR 集群上修改 livy.server.session.timeout 属性,也可以在启动新集群时进行修改。

在正在运行的集群上修改 livy.server.session.timeout

完成以下步骤:

  1. 在活动主节点上打开 /etc/livy/conf/livy.conf
  2. 修改 livy.server.session.timeout 值:
    sudo vim /etc/livy/conf/livy.conflivy.server.session.timeout 2h
    **注意:**请将 2h 替换为符合您要求的值。默认值为 1 小时。
  3. 要重新启动 livy-server,请根据您的版本要求在活动主节点上运行以下命令之一。
    对于基于 Amazon Linux 2 的 Amazon EMR 版本 5.30.0 或更高版本、Amazon EMR 6 系列以及 Amazon EMR 7 系列,请运行以下命令:
    sudo systemctl stop livy-server
    sudo systemctl start livy-server
    对于 Amazon EMR 发行版 5.29.0 或更早版本,请运行以下命令:
    sudo stop livy-server
    sudo start livy-server

**注意:**当 livy-server 重启时,您将无法访问您的集群。为避免停机,请在启动 Amazon EMR 集群时配置 Apache Livy 应用程序。

在新集群上修改 livy.server.session.timeout

在使用 Amazon EMR 版本 4.6.0 或更高版本启动集群时,请添加配置对象

示例:

[
    {
        "Classification": "livy-conf",
        "Properties": {
            "livy.server.session.timeout-check": "true",
            "livy.server.session.timeout": "2h",
            "livy.server.yarn.app-lookup-timeout": "120s"
        }
    }
]

您还可以修改以下相关属性:

  • 当启用 livy.server.session.timeout-check 属性时,Apache Livy 会停止达到超时阈值的空闲会话。默认设置为 true
  • livy.server.yarn.app-lookup-timeout 属性是指 Apache Livy 在将 YARN 应用程序视为丢失之前寻找该应用程序的持续时间。默认设置为 60s

在作业运行完成后,请务必关闭 Jupyter 或 Zeppelin 中的会话。如果打开的会话过多,则在资源可用之前将无法启动新作业。

相关信息

Apache Livy

Amazon EMR 上的 Jupyter Notebook

AWS 官方
AWS 官方已更新 2 个月前