Jast blog Jast blog
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Jast-zsh

如果你知道你要去哪里,全世界都会给你让路。
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • Spark算子
  • Spark启动参数以及调优记录
  • Spark-shell读取MySQL写入HDFS
  • Spark foreachRDD的正确使用
  • DataFrame函数
  • Spark WebUI更换使用端口
  • Spark stage如何划分
  • Spark使用HanLP分词
  • Spark RDD分区2G限制
  • Spark读取Hbase写入Hive
  • Ambari Spark 提交任务报错
  • JavaAPI提交Spark任务
  • SparkStreaming Kafka 自动保存offset到zookeeper
  • SparkStreaming参数介绍
  • SparkKerberos租约到期
    • Spark日志Log4j发送到Kafka
    • Spark --files介绍
    • SparkGraphX使用详解
    • Spark运行异常记录
    • 《Spark教程》笔记
    Jast-zsh
    2023-03-10
    目录

    SparkKerberos租约到期

    [toc]

    # 报错

    Spark程序运行报错

    # 报错一

    2023-02-13 14:42:36,000 [WARN] [LeaseRenewer:hadoop@HDFS8001226] Exception encountered while connecting to the server  (org.apache.hadoop.ipc.Client(org.apache.hadoop.ipc.Client$Connection$1.run:772))
    org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.token.SecretManager$InvalidToken): token (token for hadoop: HDFS_DELEGATION_TOKEN owner=hadoop/10.86.50.30@EMR-KE6F8BC5, renewer=hadoop, realUser=, issueDate=1675665753020, maxDate=1676270553020, sequenceNumber=5460, masterKeyId=86) is expired, current time: 2023-02-13 14:42:35,997+0800 expected renewal time: 2023-02-13 14:42:33,020+0800
    
    1
    2

    # 报错二

    java.io.IOException: Lease timeout of 0 seconds expired.
    
    1

    # 原因

    在我的krb文件中,我有一个属性renew_lifetime = 7d,即KDC到期。

    # 解决方法

    # 方法一

    对于JAVA应用,在连接HBase、HDFS或者其他大数据组件前,先调用loginUserFromKeytab()创建UGI,然后启动一个定时线程进行检查是否过期并在过期前重新登录。

    private static void startCheckKeytabTgtAndReloginJob() {
            //10分钟循环 达到距离到期时间一定范围就会更新凭证
            ThreadPool.updateConfigThread.scheduleWithFixedDelay(() -> {
                try {
                    UserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab();
                    logger.warn("get tgt:{}", UserGroupInformation.getLoginUser().getTGT());
                    logger.warn("Check Kerberos Tgt And Relogin From Keytab Finish.");
                } catch (IOException e) {
                    logger.error("Check Kerberos Tgt And Relogin From Keytab Error", e);
                }
            }, 0, 10, TimeUnit.MINUTES);
            logger.warn("Start Check Keytab TGT And Relogin Job Success.");
        }
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    # 方法二

    对于Spark作业,通过spark-shell、spark-submit、spark-sql方式提交作业,可以直接在命令行中指定Keytab和Principal以获取认证,定期更新登录凭证和授权tokens,避免认证过期, 例如:

    spark-shell --principal spark2x/hadoop.<系统域名>@<系统域名> --keytab ${BIGDATA_HOME}/FusionInsight_Spark2x_8.1.0.1/install/FusionInsight-Spark2x-2.4.5/keytab/spark2x/SparkResource/spark2x.keytab --master yarn
    
    1

    # 参考

    https://support.huaweicloud.com/mrs_faq/mrs_03_1167.html

    上次更新: 2023/03/10, 17:30:33
    SparkStreaming参数介绍
    Spark日志Log4j发送到Kafka

    ← SparkStreaming参数介绍 Spark日志Log4j发送到Kafka→

    最近更新
    01
    Linux可视化监控
    02-26
    02
    Maven私服搭建
    02-26
    03
    当ElasticSearch时间字段设置多个格式到底是用的哪个?
    01-19
    更多文章>
    Theme by Vdoing | Copyright © 2016-2025 Jast-zsh | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式