Hadoop HDFS委派令牌即使在将原则添加到命令行后也已过期

Hadoop HDFS委派令牌即使在将原则添加到命令行后也已过期,hadoop,spark-streaming,kerberos,kerberos-delegation,Hadoop,Spark Streaming,Kerberos,Kerberos Delegation,我正在hadoop中运行spark流媒体工作。机器已kerberized,并正常运行了42小时,但由于HDFS令牌授权到期而出现故障 我甚至为kinit命令设置了crontab,该命令每8小时运行一次,并且我有10小时的最大续订生命周期令牌 由于以下错误而失败:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken):token(HDFS\u DELEGAT

我正在hadoop中运行spark流媒体工作。机器已kerberized,并正常运行了42小时,但由于HDFS令牌授权到期而出现故障

我甚至为kinit命令设置了crontab,该命令每8小时运行一次,并且我有10小时的最大续订生命周期令牌

由于以下错误而失败:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken):token(HDFS\u DELEGATION\u token

启动作业时,我还在命令行中按原则运行作业。

问题已解决。。。! 在启动作业时,在spark命令行中添加了以下配置,该配置成功

--conf spark.hadoop.fs.hdfs.impl.disable.cache=true

或者,您可以在纱线配置级别对此进行更改,以影响全局

我测试了它三天运行良好


谢谢

这已经晚了几年了,但以防万一有人无意中发现了这一点:

禁用FS缓存(
FS.hdfs.impl.disable.cache=true
)意味着
FileSystem#get
将在每次调用时创建一个新的文件系统

相反,如果您将
--keytab
传递给
spark submit
,则app master似乎可以刷新委派令牌:


即使设置了此配置,Spark作业也会失败。我们也面临同样的问题

令牌仅在24小时内有效。请每24小时自动更新一次令牌,直到其达到最大生存期(即7天),然后该令牌将无法再更新,需要重新发布,因此应用程序将失败

这可能有助于解决问题。

还尝试添加“-conf-mapreduce.job.complete.cancel.delegation.tokens=false”,这帮助我运行了一周多的作业,问题解决了….!我添加“-conf-spark.hadoop.fs.hdfs.impl.disable.cache=true”和“-conf-mapreduce.job.complete.cancel.delegation.tokens=false”当我提交spark streamming作业时,它不起作用。鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接的最相关部分,以防无法访问外部资源或永久脱机。