authentication - 由于缺少 Kerberos 票证,纱线应用程序命令挂起
问题描述
在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 application --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 任务中执行,因此不应以任何方式挂起。
解决方案
推荐阅读
- swift - Firebase Firestore 查询未执行
- c++ - 为什么我的班级成员不存在?
- git - 如何在 git 中将 7 个推送的提交压缩为一比一?
- javascript - “未处理的拒绝(SyntaxError):JSON 中位置 0 的意外令牌 h”与 response.json()
- reactjs - 如何在 Gatsby 中集成 whatwg-fetch
- c++ - 在 CIN 上输入 10 位数字时程序永远循环
- javascript - 对象方法内部的设置超时
- java - 如何在 Java OpenCV 中将两点相加?
- python - 将查询集从装饰器传递给函数
- javascript - 将环境变量传递给前端