В скрипте bash я вызываю команду yarn application
, чтобы текущие приложения работали на кластере Cloudera Hadoop, защищенном Kerberos.Если мое приложение не запущено, необходимо перезапустить его:
spark_rtp_app_array=( $(yarn application --list -appTypes SPARK -appStates ACCEPTED,RUNNING | awk -F "\t" ' /'my_user'/ && /'my_app'/ {print $1}') )
Когда заканчивается билет Kerberos, мне нужно вызвать команду kinit , чтобы обновить этот билет до того, каквызов приложения пряжи --list:
kinit -kt my_keytab_file.keytab my_kerberos_user
В противном случае, я мог бы закончить с ошибкой аутентификации, которая продолжает бесконечно повторяться со следующими следами:
19/02/13 15:00:22 WARN ipc.Client: Exception encountered while connecting to the server : javax.security.sasl.SaslException: GSS in\
itiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
19/02/13 15:00:22 WARN security.UserGroupInformation: PriviledgedActionException as:my_kerberos_user (auth:KERBEROS) cause:java.io\
.IOException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechan\
ism level: Failed to find any Kerberos tgt)]
[...]
Есть ли способустановить максимальное количество попыток подключения к YARN?Сценарий bash выполняется в задаче cron, поэтому его не следует вешать.