【问题标题】:Kerberos ticket renewal on Spark streaming job that communicates to Kafka与 Kafka 通信的 Spark 流作业上的 Kerberos 票证续订
【发布时间】:2018-03-05 22:43:09
【问题描述】:

我有一个运行时间很长的 Spark 流式作业,它在 Kerberized Hadoop 集群上运行。它每隔几天就会失败,并出现以下错误:

诊断:在缓存中找不到令牌(XXXXXXX 的令牌:HDFS_DELEGATION_TOKEN owner=XXXXXXXXX@XX.COM,renewer=yarn,realUser=,issueDate=XXXXXXXXXXXXXXX,maxDate=XXXXXXXXXX,sequenceNumber=XXXXXXXX,masterKeyId=XXX)

我尝试在 spark-submit 中添加 --keytab 和 --principal 选项。但是我们已经有以下选项可以做同样的事情:

对于第二个选项,我们已经通过以下方式传入了 keytab 和 principal: 'spark.driver.extraJavaOptions=-Djava.security.auth.login.config=kafka_client_jaas.conf -Djava.security.krb5.conf=krb5.conf -XX:+UseCompressedOops -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX :+G1SummarizeConcMark -XX:InitiatingHeapOccupancyPercent=35 -XX:ConcGCThreads=12' \

spark.executor.extraJavaOptions 也是如此。如果我们添加选项 --principal 和 --keytab 它会导致尝试将文件(keytab)多次添加到分布式缓存

【问题讨论】:

标签: apache-spark spark-streaming kerberos


【解决方案1】:

有两种方法可以做到。

  1. 拥有一个定期生成密钥表/票证的 shell 脚本。

  2. [推荐] 将您的 keytab 传递给 Spark,仅对 spark 用户进行严格访问,它可以自动为您重新生成票证。访问thisCloudera 社区页面了解更多详情。只需简单的一堆步骤,你就可以开始了!

希望有帮助!

【讨论】:

  • 我们尝试了第一种方法,但它不适用于流式作业。遇到同样的错误。
  • 在原始问题中添加了第二个选项尝试
  • 大卫,你能解决这个问题吗?甚至我们也面临着类似的问题。在 spark-submit 中传递 keytab 和 principal 是否解决了您的问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-19
  • 1970-01-01
  • 2019-06-30
  • 2021-10-20
  • 1970-01-01
  • 2011-12-23
相关资源
最近更新 更多