我正在使用 Spark Job Server 运行 Spark 作业,它运行良好。但是当我尝试执行一项大工作(需要超过 40 秒)时,我得到了这个错误:
The server was not able to produce a timely response to your request.
是否需要一些配置才能等待服务器响应?我应该怎么办?
谢谢
最佳答案
sync 作业提交可以达到几种不同的超时。你的来自 Spray-can 服务器。您可以通过 conf
文件对其进行配置:
spray.can.server {
idle-timeout = <set desired timeout>
request-timeout = <set desired timeout>
}
您可以将这两个值都设置为 infinite
以完全禁用这些超时。
一般来说,我观察到至少有 3 种常见的不同超时,它们可以在作业完成之前返回您的请求:
- 基于 Akka 的请求超时。如果同步作业在 X 秒之前未完成,将返回状态为“错误”的 JSON 响应。 SJS 中的默认值为 10 秒,但您可以通过将
timeout=Y
参数传递给您的POST/jobs
请求来覆盖它。 - Spray-can 服务器超时:
idle-timeout
,request-timeout
。将返回默认的 Spray 响应,使其更难捕捉。它们分别默认为 60 秒和 40 秒。 - 另一个超时可能来自您的客户端 REST 库...其中一些将其默认配置配置为禁用该层上的任何超时,其中一些可能会考虑服务器的超时并根据该配置自己的行为.. . 例如,一旦您禁用上面的超时#2,C++ REST SDK 库就会启动 WinHTTP 超时 30 秒,#2 到位后它将等待 40 秒...
关于java - Spark 作业服务器 : "The server was not able to produce a timely response to your request",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27986864/