gpt4 book ai didi

apache-spark - 如何控制Spark作业提交的Hadoop IPC重试次数?

转载 作者:行者123 更新时间:2023-12-02 19:13:35 26 4
gpt4 key购买 nike

假设我尝试在没有有效的Kerberos凭据的情况下将Spark(2.4.x)作业提交给Kerberized群集。在这种情况下,Spark启动器会反复尝试启动Hadoop IPC调用,但失败:

20/01/22 15:49:32 INFO retry.RetryInvocationHandler: java.io.IOException: Failed on local exception: java.io.IOException: org.apache.hadoop.security.AccessControlException: Client cannot authenticate via:[TOKEN, KERBEROS]; Host Details : local host is: "node-1.cluster/172.18.0.2"; destination host is: "node-1.cluster":8032; , while invoking ApplicationClientProtocolPBClientImpl.getClusterMetrics over null after 1 failover attempts. Trying to failover after sleeping for 35160ms.

这将重复多次(在我的情况下为30次),直到最终启动器放弃并认为作业提交失败。

各种其他类似的问题都提到了这些属性(实际上是YARN属性,但根据将其传递给Spark应用程序的标准机制,其前缀为 spark.)。
  • spark.yarn.maxAppAttempts
  • spark.yarn.resourcemanager.am.max-attempts

  • 但是,这些属性都不会影响我正在描述的行为。如何控制Spark作业提交中IPC重试的次数?

    最佳答案

    经过大量调试,我弄清楚了此处涉及的属性。

  • yarn.client.failover-max-attempts(控制最大尝试次数)

  • 如果没有指定,尝试次数似乎来自这两个属性的比率(分子优先,分母第二)。
  • yarn.resourcemanager.connect.max-wait.ms
  • yarn.client.failover-sleep-base-ms

  • 当然,与任何YARN属性一样,在Spark作业提交的上下文中,这些属性必须带有 spark.hadoop.前缀。

    Hadoop YARN项目(源 here)内的相关类(解析所有这些属性)是 RMProxy。所有这些以及相关的属性都记录在 here中。

    关于apache-spark - 如何控制Spark作业提交的Hadoop IPC重试次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59863850/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com