java - 使用 spark-submit 命令失败的 Kerberos 身份验证
问题描述
所以我正在开发一个 Spring Batch 引擎。大约有 5 个进程正在运行,它们通过传入特定的命令行参数来触发。对于这 5 个进程中的 4 个,我正在运行 java -jar 命令。对于第 5 个进程,我正在使用 spark-submit 命令,因为由于正在处理的数据的大小,该进程需要利用 spark。我在使用 spark-submit 命令时遇到了 JDBC 和 Kerberos 身份验证问题。Oracle @Configuration 对于所有这些进程都是相同的。它工作正常,并且使用 java -jar 命令进行身份验证。但是当我运行 spark-submit 命令时,我得到以下错误......
Caused by: org.ietf.jgss.GSSException: No valid credentials provided (Mechanism level: Server not found in Kerberos database (7))
at sun.security.jgss.krb5.Krb5Context.initSecContext(Krb5Context.java:770) ~[na:1.8.0_152]
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:248) ~[na:1.8.0_152]
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:179) ~[na:1.8.0_152]
... 83 common frames omitted
Caused by: sun.security.krb5.KrbException: Server not found in Kerberos database (7)
at sun.security.krb5.KrbTgsRep.<init>(KrbTgsRep.java:70) ~[na:1.8.0_152]
at sun.security.krb5.KrbTgsReq.getReply(KrbTgsReq.java:251) ~[na:1.8.0_152]
at sun.security.krb5.KrbTgsReq.sendAndGetCreds(KrbTgsReq.java:262) ~[na:1.8.0_152]
at sun.security.krb5.internal.CredentialsUtil.serviceCreds(CredentialsUtil.java:308) ~[na:1.8.0_152]
at sun.security.krb5.internal.CredentialsUtil.acquireServiceCreds(CredentialsUtil.java:126) ~[na:1.8.0_152]
at sun.security.krb5.Credentials.acquireServiceCreds(Credentials.java:458) ~[na:1.8.0_152]
at sun.security.jgss.krb5.Krb5Context.initSecContext(Krb5Context.java:693) ~[na:1.8.0_152]
... 85 common frames omitted
Caused by: sun.security.krb5.Asn1Exception: Identifier doesn't match expected value (906)
at sun.security.krb5.internal.KDCRep.init(KDCRep.java:140) ~[na:1.8.0_152]
at sun.security.krb5.internal.TGSRep.init(TGSRep.java:65) ~[na:1.8.0_152]
at sun.security.krb5.internal.TGSRep.<init>(TGSRep.java:60) ~[na:1.8.0_152]
at sun.security.krb5.KrbTgsRep.<init>(KrbTgsRep.java:55) ~[na:1.8.0_152]
... 91 common frames omitted
我的火花提交命令如下...
spark-submit --conf "spark.driver.userClassPathFirst=true" --conf "spark.executor.userClassPathFirst=true" --conf "spark.driver.extraJavaOptions=-DSPARK_LOG=/home/${USERID}/payfloat_sim_input_log.spark -Dlog4j.configuration=file:${CEMS_COMMON_CFG}/log4jSpark.properties" --conf spark.ui.port=${SP_UI_PORT} --conf spark.hadoop.mapred.output.compress=${MAPRED_OUTPUT_COMPRESS} --master ${MASTER_TYPE} --deploy-mode ${DEPLOY_MODE} --queue ${SPARK_QUEUE} --executor-cores ${EXECUTOR_CORES} --num-executors ${NUM_EXECUTORS} --executor-memory ${EXECUTOR_MEMORY} ${AEGIS_INCLEARING_JAR} LoadTrialBalanceFile
解决方案
推荐阅读
- typescript2.0 - 无法执行打字稿功能
- c# - 为查询类型 Ef core 2.1 初始化数据
- stenciljs - 模板父组件变量更改不刷新子组件
- symfony - 如何使用 YAML 映射实现“alsoLoad”(Symfony)
- javascript - ( item.area_partition.homepage_show || item.area_partition.name ) 不符合我的要求
- bootstrap-confirmation - 根据条件启用/禁用按钮上的引导确认
- django - Talend ETL-postgres(django 框架)的问题日期导入
- php - 按相同的数组值计算多维数组值
- python - 如何用 PySide 连接两个不同的小部件?
- java - Spring Batch 将并发线程数限制为 10