在 bash脚本中,我正在调用yarn application
命令,以使当前应用程序在由Kerberos保护的Cloudera Hadoop集群上运行。如果我的应用程序未运行,则必须重新启动它:
spark_rtp_app_array=( $(yarn application --list -appTypes SPARK -appStates ACCEPTED,RUNNING | awk -F "\t" ' /'my_user'/ && /'my_app'/ {print $1}') )
每当Kerberos票证结束时,我都需要调用 kinit 命令,以便在调用yarn应用程序--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任务中执行的,因此不应以任何方式挂起。