3

我正在 hadoop 中运行火花流作业。这台机器是 kerberized 并且它运行了 42 小时并且由于 HDFS 令牌委托到期而失败。

我什至为每 8 小时运行一次的 kinit 命令设置了 crontab,并且我拥有 10 小时的 Max-renew 生命周期令牌。

由于错误而失败:org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken): token (HDFS_DELEGATION_TOKEN token

在启动它时,我也在命令行中按照原则运行该作业。

4

3 回答 3

5

问题解决了...!在启动作业时添加了以下配置以触发命令行并且它工作。

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

或者您可以在纱线配置级别更改它以影响全局。

我测试了它运行良好 3 天。

谢谢

于 2016-10-07T20:43:42.070 回答
2

这已经晚了几年,但以防万一有人偶然发现:

禁用 FS 缓存 ( fs.hdfs.impl.disable.cache=true) 意味着FileSystem#get每次调用它都会创建一个新的 FileSystem。

--keytab相反,如果您传递给,它看起来应用程序主人可以刷新委托令牌spark-submit

于 2018-07-25T18:28:21.853 回答
0

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

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

这可能有助于解决问题。 https://community.cloudera.com/t5/Support-Questions/Long-running-Spark-streaming-job-that-c​​rashes-on-HDP-2-3-4-7/td-p/181658

于 2020-12-18T06:05:12.610 回答