我该如何解决 Amazon EMR 中的“session '0' not found”和“Error sending http request and maximum retry encountered”等错误?

上次更新时间:2019 年 9 月 24 日

当我在 Amazon EMR 上使用 Jupyter Notebook 运行 Apache Livy 应用程序时,会出现以下错误之一:

  • '404' from xxxxxxxx with error payload: "session '0' not found"
  • "The code failed because of a fatal error: Error sending http request and maximum retry encountered."

简短描述

在您使 Jupyter Notebook 会话一直运行直到其超时的情况下,通常会发生这些错误。要解决这些错误,请在主节点上的 /etc/livy/conf/livy.conf 中适当增加 livy.server.session.timeout 的值。然后,重新启动 livy-server

解决方法

您可以在正在运行的 Amazon EMR 集群上或启动新集群时修改 livy.server.session.timeout

在正在运行的集群上

1.在主节点上打开 /etc/livy/conf/livy.conf,然后修改 livy.server.session.timeout 值(默认值为 1h)。例如:

sudo vim /etc/livy/conf/livy.conf
livy.server.session.timeout 2h

2.    在主节点上运行以下命令以重新启动 livy-server

sudo stop livy-server
sudo start livy-server

livy-server 重新启动时,您的集群不可用。为避免停机,请在启动 Amazon EMR 集群时配置 Livy 应用程序。

在新的集群上

在使用 Amazon EMR 发行版本 4.6.0 或更高版本启动集群时,请添加如下所示的配置对象。除了 livy.server.session.timeout,您还可以修改以下相关属性(如果需要):

  • livy.server.session.timeout-check:启用后,Livy 将停止达到超时阈值的空闲会话。默认设置为 true
  • livy.server.yarn.app-lookup-timeout:Livy 在将 YARN 应用程序视为丢失之前会寻找多长时间。默认设置为 60s
[
    {
        "Classification": "livy-conf",
        "Properties": {
            "livy.server.session.timeout-check": "true",
            "livy.server.session.timeout": "2h",
            "livy.server.yarn.app-lookup-timeout": "120s"
        }
    }
]

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


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助吗?