fla*_*aer 6 hadoop kerberos hdfs hadoop-yarn spark-streaming
我在 Spark 版本 2.3.0 中有一个简单的 Spark Streaming 应用程序,它将每个处理批次的结果放在 HDFS 上。我的应用程序在部署模式客户端中的 YARN 上运行,我使用的是 kerberized hadoop 集群 (hadoop2.6.0-cdh5.9.3)。我在 spark-submit 命令中设置了 --principal 和 --keytab 。
几天后,由于缓存中缺少委托令牌,我的应用程序无法在 HDFS 上写入。重新启动应用程序后,流媒体工作正常,但几天后由于同样的原因再次失败。
这是来自驱动程序的日志:
ERROR JobScheduler: Error running job streaming job 1528366650000 ms.0
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken): token (token for spark_online: HDFS_DELEGATION_TOKEN owner=spark@DCWP, renewer=yarn, realUser=, issueDate=1528232733578, maxDate=1528837533578, sequenceNumber=14567778, masterKeyId=1397) can't be found in cache
Run Code Online (Sandbox Code Playgroud)
当我添加到应用程序配置 spark.hadoop.fs.hdfs.impl.disable.cache=true 时问题可以解决,但禁用缓存对处理性能有很大影响。
如果有人可以帮助我,我将不胜感激!
您的 kerberos 票证可能需要刷新(这就是为什么它会在您重新启动时起作用)。
Kerberos 票证的生命周期对这两个设置进行了相当不错的演练,特别是您必须查看的。
我更喜欢选项1,使用30天左右。这是跟踪“我上次重新启动该服务是什么时候”的好方法。
| 归档时间: |
|
| 查看次数: |
4167 次 |
| 最近记录: |