超时错误:400 状态码错误:“要求失败:会话未激活。”

Posted

技术标签:

【中文标题】超时错误:400 状态码错误:“要求失败:会话未激活。”【英文标题】:Timeout error: Error with 400 StatusCode: "requirement failed: Session isn't active." 【发布时间】:2019-04-15 23:20:42 【问题描述】:

我正在使用 Zeppelin v0.7.3 笔记本运行 Pyspark 脚本。在一段中,我正在运行脚本以将数据从 dataframe 写入 Blob 文件夹中的 parquet 文件。文件按国家/地区进行分区。数据帧的行数为99,452,829。当脚本到达1 hour时,遇到错误-

400 StatusCode 错误:“要求失败:会话不存在 活跃。

我的笔记本默认解释器是jdbc。我已阅读有关 timeoutlifecyclemanager 的信息,并在解释器设置中添加了 zeppelin.interpreter.lifecyclemanager.timeout.threshold 并将其设置为 7200000,但在处理完成 33% 时达到 1 小时运行时间后仍然遇到错误。

我在 1 小时超时后检查了 Blob 文件夹,并且 parquet 文件已成功写入 Blob,这些文件确实按国家/地区进行了分区。

我正在运行的将 DF 写入 parquet Blob 的脚本如下:

trdpn_cntry_fct_denom_df.write.format("parquet").partitionBy("CNTRY_ID").mode("overwrite").save("wasbs://tradepanelpoc@blobasbackupx2066561.blob.core.windows.net/cbls/hdi/trdpn_cntry_fct_denom_df.parquet")

这是 Zeppelin 超时问题吗?如何将其延长超过 1 小时的运行时间?感谢您的帮助。

【问题讨论】:

【参考方案1】:

超时生命周期管理器从 0.8 版开始可用。

似乎pyspark有问题。试试这个解决方案 Pyspark socket timeout exception after application running for a while

【讨论】:

【参考方案2】:

来自This stack overflow question's answer which worked for me

从输出判断,如果您的应用程序没有以 FAILED 状态完成,这听起来像是 Livy 超时错误:您的应用程序可能花费的时间比 Livy 会话定义的超时时间(默认为 1 小时)更长,所以即使尽管 Spark 应用程序成功,但如果应用程序花费的时间超过 Livy 会话的超时时间,您的笔记本仍会收到此错误。

如果是这样,以下是解决方法:

1. edit the /etc/livy/conf/livy.conf file (in the cluster's master node)
2. set the livy.server.session.timeout to a higher value, like 8h (or larger, depending on your app)
3. restart Livy to update the setting: sudo restart livy-server in the cluster's master
4. test your code again

【讨论】:

以上是关于超时错误:400 状态码错误:“要求失败:会话未激活。”的主要内容,如果未能解决你的问题,请参考以下文章

浏览器常见状态码403,302

HTTP常见的状态码——面试题常考

反应:未捕获(承诺)错误:请求失败,状态码为 400

如何解决“snapd返回状态码400:错误请求”?

可能未处理的承诺拒绝/错误:请求失败,状态码为 400

错误:响应不成功:收到状态码 400" Graphql