HDFS_DELEGATION_TOKEN过期的问题解决汇总
1.【Flink系列二十】Flink Example AsyncIOExample long running 应用程序的应用2.【Flink系列二十一】深入理解 JVM的类型加载约束,解决 Flink 类型加载冲突问题的通用方法3.【Flink系列十九】Flink 作业Hadoop 依赖冲突解决NoSuchMethodError
4.HDFS_DELEGATION_TOKEN过期的问题解决汇总
5.【Flink系列十八】History Server 重新登场,如何实现Yarn日志集成6.【Flink系列十七】Flink 最新yarn-application和yarn-per-job部署模式的Classpath传递分析7.【Flink系列十六】PrometheusPushGatewayReporter 限流压力过大解决8.【Flink系列十五】FLINK-24950 registerTemporaryFunction NullPointerException9.【Flink系列十四】Flink JVM参数不生效的问题分析和解决10.【Flink系列十三】Flink-Kafka-Connector KafkaSource FlinkKafkaConsumer没有上报指标11.【Flink系列十二】使用OpenResty 在InfluxDB协议层拦截Flink指标12.【Flink系列十一】FlinkSQL Gateway以及支持Kerberos多租户的实现思路13.【Flink系列十】Flink作业提交过程的调试和诊断14.【Flink系列九】Flink 作业提交遇到的问题记录以及原理15.【Flink系列八】构建实时计算平台——动态加载Catalog中的UDF16.【Flink系列零】构建实时计算平台——FlinkSQL 作业菜鸟笔记17.【Flink系列七】构建实时计算平台——校验FlinkSQL18.【Flink系列六】构建实时计算平台——Flink 1.10+通过Kerberos连接HiveCatalog19.【Flink系列五】构建实时计算平台——flink-connector-hive连接HiveMetastore遇到问题20.【Flink系列四】构建实时计算平台——Flink SQLClient启动失败的问题笔记21.【Flink系列三】构建实时计算平台——特别篇,Influxdb Java客户端访问指标数据22.【Flink系列二】构建实时计算平台——特别篇,用InfluxDb收集Flink Metrics23.【Flink系列一】构建实时计算平台——Flink开启和恢复Checkpoint问题类别
- Spark框架自身的问题
- Hadoop全家桶的问题
- 开发者使用的库的问题
排查
- 已知Hadoop-common-2.6.0的UGI存在bug,代码为HADOOP-10786,该问题在CDH发行版中已经修复,但Apache版本在2.6.1之前存在问题。
- 已知HDFS也存在一个HDFS_DELEGATION_TOKEN过期的bug,代码为HDFS-9276,问题在CDH发行版中已经修复,但Apache在2.7.1之前的版本存在问题。
- 已知Spark还存在一个HDFS_DELEGATION_TOKEN过期的bug,代码为SPARK-23361,该问题会导致Driver重启后,如果超过7天,就会挂掉一次。SPARK 2.4.0之前存在该问题。
以上CDH发行版特指 2.6.0-CDH5.12.1,相对的Apache发行版版本为2.6.0
方法
- 首先,确保用的Apache库没有问题,才能安全地长期运行Spark,Flink等 long-running applications,其次再排查手动使用Hadoop HDFS库的方式,才能访问HDFS,Hbase, Hive等,才能确保程序不会挂掉
- 确保使用 Hadoop-common-2.6.0-CDH5.12.1以及其他Hadoop有关的包,保证框架层面不会有问题
- 要么升级版本到没有BUG的hadoop库的版本,才能继续使用Apache全家桶
提示
- 用户打包的应用程序内可能会有 hadoop-xxxx.jar,SPARK_HOME/jars/内也可能有 hadoop-xxxx.jar,或者shade导致的内嵌字节码文件。
- 常见的
--conf spark.hadoop.fs.hdfs.impl.disable.cache=true
这个选项,只能回避HDFS-9276的BUG。
案例
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken): token (token for research: HDFS_DELEGATION_TOKEN owner=research@RTC.SLANKKA.COM, renewer=yarn, realUser=, issueDate=1690268368213, maxDate=1690873168213, sequenceNumber=211804054, masterKeyId=2078) is expired, current time: 2023-08-01 15:00:20,416+0800 expected renewal time: 2023-08-01 14:59:28,213+0800
at org.apache.hadoop.ipc.Client.call(Client.java:1504)
at org.apache.hadoop.ipc.Client.call(Client.java:1441)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:230)
at com.sun.proxy.$Proxy10.getFileInfo(Unknown Source)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:771)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:260)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:104)
at com.sun.proxy.$Proxy11.getFileInfo(Unknown Source)
at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:2126)
at org.apache.hadoop.hdfs.DistributedFileSystem$20.doCall(DistributedFileSystem.java:1262)
at org.apache.hadoop.hdfs.DistributedFileSystem$20.doCall(DistributedFileSystem.java:1258)
at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1258)
at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:425)
at org.apache.hadoop.fs.viewfs.ChRootedFileSystem.getFileStatus(ChRootedFileSystem.java:226)
at org.apache.hadoop.fs.viewfs.ViewFileSystem.getFileStatus(ViewFileSystem.java:379)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!