Предположим, я пытаюсь отправить задание Spark (2.4.x) в кластер Kerberized без действительных учетных данных Kerberos. В этом случае средство запуска Spark несколько раз пытается инициировать вызов Had oop IP C, но не удается:
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
Однако ни одно из этих свойств не влияет на поведение, которое я описываю. Как я могу контролировать количество попыток IP C при отправке задания Spark?