Apache spark Spark 2.0流媒体应用程序为每个续订过程加载新的密钥表文件

Apache spark Spark 2.0流媒体应用程序为每个续订过程加载新的密钥表文件,apache-spark,apache-spark-sql,spark-streaming,kerberos,Apache Spark,Apache Spark Sql,Spark Streaming,Kerberos,我们将spark 2.0用于spark流媒体应用程序。我们正在将应用程序迁移到kerberos env。为了进行kerberos身份验证,现在我们提供了keytab文件,spark可以在需要时随时随地自动对令牌进行身份验证和续订 --conf spark.yarn.keytab=user.keytab --conf spark.yarn.principal=user@######.COM --files user.keytab 我们被告知kerberos用户密码将每周更改,并且具有相同名称的新

我们将spark 2.0用于spark流媒体应用程序。我们正在将应用程序迁移到kerberos env。为了进行kerberos身份验证,现在我们提供了keytab文件,spark可以在需要时随时随地自动对令牌进行身份验证和续订

--conf spark.yarn.keytab=user.keytab --conf spark.yarn.principal=user@######.COM --files user.keytab
我们被告知kerberos用户密码将每周更改,并且具有相同名称的新keytab文件将放置在相同的位置。所以下一次spark流媒体应用程序需要基于新的密钥表文件而不是旧的密钥表文件更新令牌


这对于流式应用程序来说是一个挑战,因为流式应用程序持续运行,并且keytab文件加载到内存中。请告诉我如何将keytab文件加载到spark内存中,以便进行下一次续订过程。

据我所知,您需要手动编写自定义代码来完成此操作-除了每个周期重新启动一次流媒体应用程序。IMHO,由于这种奇怪的安全要求,您无法避免计划内停机。更糟糕的是,在某个时刻,在正确的时间无缝更新键盘的“承诺”将失败,你的应用程序将意外崩溃和烧坏。为了安全起见,只需接受您的SLA中必须有停机时间(计划内和计划外),并构建具有弹性的应用程序即可。