【问题标题】:Spark yarn-client mode behind a load balancer that drops inactive TCP connections负载均衡器后面的 Spark yarn-client 模式会丢弃非活动 TCP 连接
【发布时间】:2020-08-18 13:31:27
【问题描述】:

我在客户端模式下在 YARN 上运行 Spark。驱动程序通过负载均衡器与 ApplicationMaster 分离,负载均衡器会在 5 分钟后终止非活动 TCP 连接。这甚至会在 5 分钟后杀死活跃的 YARN 作业。

这是因为ApplicationMaster opens an RPC connection to the driver and sends the RegisterClusterManager message。之后,如果执行者的数量增加或减少,它只会通过此连接发送消息。这可能不会每五分钟发生一次。在最后一次 RPC 调用五分钟后,负载均衡器因不活动而终止 RPC 连接,并在 RPC 连接上调用 onDisconnected 方法,终止 YARN 作业。

这是一个公司环境,我无法更改负载均衡器关于丢弃非活动 TCP 会话的行为。我可以忍受 YARN 作业在它们处于非活动状态 5 分钟后超时,但正在运行的作业不应终止。

我怀疑正确的方法是使用OS-level TCP keepalive for the connections。但是,我使用的 Spark 版本还没有提供此功能。

有什么方法可以解决这个问题,而无需滚动我自己的 Spark 版本,该版本在该 RPC 会话中手动实现 keepalive 或心跳机制?

【问题讨论】:

    标签: apache-spark tcp hadoop-yarn rpc


    【解决方案1】:

    我能够通过将流量路由到负载平衡器来解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-24
      • 2020-10-26
      相关资源
      最近更新 更多