假设我尝试在没有有效的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重试的次数?