前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >0578-5.15.1-Kerberos环境下Java应用程序认证超时异常分析

0578-5.15.1-Kerberos环境下Java应用程序认证超时异常分析

作者头像
Fayson
发布于 2019-04-28 10:03:18
发布于 2019-04-28 10:03:18
2.9K00
代码可运行
举报
文章被收录于专栏:Hadoop实操Hadoop实操
运行总次数:0
代码可运行

作者:谢敏灵/辉少

1

文档编写目的

在Kerberos环境中,我们的应用程序通过Java代码来提交任务需要先进行Kerberos凭证的初始化然后进行应用程序的提交,本文档主要讲述Java应用程序长时间运行作业Kerberos不自动重新认证问题

  • 测试环境

1.CM和CDH版本为5.15.1

2.操作系统版本为RedHat7.2

3.集群已启用Kerberos

2

问题描述

在使用JDK 8时,在Kerberos环境下应用程序在执行的过程中报以下错误:

Failed on local exception: java.io.IOException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]

3

问题分析

在Kerberos环境下长时间运行的作业会出现认证失败问题,认证失败是由于Ticket过期导致。Ticket过期是由ticket_lifetime和renew_lifetime两个参数控制,具体分析如下:

先了解下krb5.conf里ticket_lifetime和renew_lifetime参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ticket_lifetime = 24h
renew_lifetime = 7d

注:这里其实还跟kdc.conf里的ticket_lifetime和renew_lifetime相关,本文不做讨论,假设你配置都是一致的。

每一个Kerberos的ticket,包括TGT,都有一个ticket_lifetime(默认:1天);Ticket可以被延续,但最多只能延续到renew_lifetime(默认:7天),超过7天后无法再延续,此时ticket失效,只能重新login。

如果你的应用程序需要运行很长时间或者需要持续不断地一直运行,就会有一个问题,即:

在应用程序启动时进行Kerberos认证登录后,是否还需要定时renew ticket或在ticket期满失效后使用keytab重新login?例如,是否需要在应用程序代码里,在每个UGI.doAS(...)前调用UGI.checkTGTAndReloginFromKeytab或者使用一个Timer周期性地调用UGI.checkTGTAndReloginFromKeytab?

关于这个问题,首先需要了解在Hadoop系统里是如何进行Kerberos认证的:

Hadoop Kerberos认证的主要使用场景是Hadoop RPC框架(使用SASL进行kerberos认证)。大部分Hadoop daemon进程在启动时会调用UGI(org.apache.hadoop.security.UserGroupInformation),UGI.loginUserFromKeytab做kerberos认证并获取ticket,并在后续每一次RPC调用时使用该ticket认证。比如,DataNode必须认证它对NameNode的RPC调用,NodeManager也必须认证它对ResourceManager的RPC调用。那么,这些daemon进程为什么能在启动后长时间持续运行而不会出现kerberos ticket错误呢(甚至已经超过了renew_lifetime)?这是因为Hadoop在RPC Client层实现了一种自动relogin机制。在Client.handleSaslConnectionFailure(org.apache.hadoop.ipc.Client)方法里有如下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
      // try re-login
    if (UserGroupInformation.isLoginKeytabBased()) {
              UserGroupInformation.getLoginUser().reloginFromKeytab();
    } else if (UserGroupInformation.isLoginTicketBased()) {
        UserGroupInformation.getLoginUser().reloginFromTicketCache();
    }

上述代码说明在使用RPC连接时,如果因为ticket失效造成认证失败,会自动relogin。

基于以上认识,可以得出以下结论:

1.如果应用程序的使用模式是从keytab登录后执行典型的Hadoop RPC Java调用(如调用HDFS FileSystem API),那么是不需要在应用层增加renew ticket或relogin代码的,因为RPC Client层已经帮你实现了。

2.如果应用程序的使用模式是不使用Hadoop RPC,而是调用HDFS REST API或YARN REST API(使用SPNEGO进行kerberos认证),那么需要在应用程序里增加relogin代码。具体实现方式是:

Java方式:主Java程序使用keytab调用UGI.loginUserFromKeytab登录,然后在每个UGI.doAS前调用UGI.checkTGTAndReloginFromKeytab方法,或者另启动一个线程周期性调用该方法。

Shell方式:主程序使用kinit登录,然后启动另一个子进程周期性的调用kinit -R去renew ticket或者调用kinit -kt去relogin。

需要注意的是当使用JDK 8时,UGI的relogin存在一个bug,即HADOOP-10786。该bug是因为JDK 8的Krb5LoginModule有些小改动,这些改动会造成UGI的relogin代码认为之前的登录并不是基于keytab登录的。所以,UGI.reloginFromKeytab和UGI.checkTGTAndReloginFromKeytab方法实际上什么都没有做,并没有执行relogin。所以,此时应用程序仍然会报以下错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Failed on local exception: java.io.IOException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]

4

解决办法

对于使用JDK 8应用程序不能正常reloginFromKeytab的 bug,workaround是:

1. 使用JDK 7而不是JDK 8,或者

2. 确保hadoop-common包含了HADOOP-10786补丁。

建议使用CDH5.13.0或者以上版本的包,这些包已经包括了该补丁。如果仍然在IDE开发环境出现了以上问题,可以检查一下IDE依赖的hadoop-common包的版本是否有问题。

参考文档:

https://issues.apache.org/jira/browse/HADOOP-10786

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
这就是低配版「钢铁侠」吗?略输颜值,但毕竟是飞起来了
一直以来,钢铁侠托尼 · 史塔克(Iron Man)深受全球漫威影迷的喜爱,一身高科技「铁衣」,御空飞行,着实令人羡慕。
机器之心
2022/02/18
2770
这就是低配版「钢铁侠」吗?略输颜值,但毕竟是飞起来了
云计算和仿真能擦出什么样的火花?
云概念已经有一段时间了。怎么了?如果可以的话,我们不必买一堆软件和工作站。对个人来说使用模拟并不是更好。那么,模拟计算能否走向云计算呢?数据安全吗?使用方便吗?在远算云平台可以给出答案
开物小编
2021/04/25
1.3K0
综述:CFD的未来之路
计算流体动力学(CFD)于近50年来兴起,是一门相对年轻的学科。但远不如上个世纪80年代,过去的15年里,计算流体力学(CFD)的发展一直停滞不前。
CAE之家
2022/04/21
2K0
综述:CFD的未来之路
【Big Computing】HPC大计算,挑战深度学习的计算力黑洞
2015 高性能计算用户大会 9月24日,由亚洲超算协会联合浪潮等主办的2015高性能计算用户大会在北京举行。本次大会围绕目前的新技术趋势提出“大计算”理念,重点聚焦深度学习和工业应用等热点话题,分享在面向百亿亿次新的计算时代下的技术挑战和突破。 大会汇集了36位国内外权威专家,包括劳斯莱斯公司高性能计算技术总监Yoon Ho、IDC副总裁Earl C. Joseph II、美国再生能源国家实验室材料研究中心理论研究室主任魏苏淮、国际深度学习知名专家新加坡国立大学副教授颜水成等嘉宾将在大会发表主题演讲。同
新智元
2018/03/13
1K0
【Big Computing】HPC大计算,挑战深度学习的计算力黑洞
1%大气密度也能飞?NASA把无人机送上火星,最具野心探测计划启动
7 月 30 日,在美国宇航局 NASA 成功发射的 MARS 2020 任务中,「宇宙神 5」型运载火箭将最新一代火星探测器毅力号 (Perseverance)送上轨道。
机器之心
2020/08/04
3910
更智能更高效-解析Autodesk CFD2018的新型CFD技术+全版本安装包
计算流体动力学(CFD)是一种广泛应用于流体动力学、热传导、燃烧和空气动力学等领域的分析工具。随着高性能计算技术和CFD软件的发展,CFD已成为现代工业制造和设计领域不可或缺的技术之一。
用户10313071
2023/04/11
4690
更智能更高效-解析Autodesk CFD2018的新型CFD技术+全版本安装包
刘军:18年“老兵”眼中的HPC与大数据、深度学习的融合
关注高性能计算(HPC)的朋友们不会忘记今年7月第45期全球超级计算机TOP500排名,中国国防科学技术大学研制,部署于中国广州超算中心的天河二号再次荣登榜首,连续第5次成为TOP500冠军。这还是在
CSDN技术头条
2018/02/09
1.2K0
刘军:18年“老兵”眼中的HPC与大数据、深度学习的融合
HPC技术趋势:HPDA、深度学习、软件定义和机柜即HPC
百度首席科学家吴恩达(Andrew Ng)曾经说,深度学习的前沿正转移到高性能计算(HPC),NVIDIA、AMD及Google、阿里巴巴等公司也确实都在为深度学习研发HPC的新能力。那么,深度学习任务为HPC注入了哪些新的东西?除了深度学习,HPC还有哪些值得关注的技术趋势?在9月24日的2015高性能计算用户大会(HPCUF2015)上,北京航空航天大学教授、国家863计划“高性能计算机及其核心软件”重大专项总体组组长钱德沛,浪潮集团高性能计算总经理刘军,以及IDC 副总裁、IDC HPC User F
CSDN技术头条
2018/02/09
1.7K0
HPC技术趋势:HPDA、深度学习、软件定义和机柜即HPC
有哪些主流的科学计算是可以利用GPU加速?这一篇让你看明白!
科学计算是指应用计算机处理科学研究和工程技术中所遇到的数学计算。在现代科学和工程技术中,经常会遇到大量复杂的数学计算问题,这些问题用一般的计算工具来解决非常困难,而用计算机来处理却非常容易。 每次用户
GPUS Lady
2018/04/02
3K0
有哪些主流的科学计算是可以利用GPU加速?这一篇让你看明白!
美国削减科研经费限制移民,将输掉AI竞赛并丧失国际霸主地位
【新智元导读】世界上最有影响力的国际时事刊物之一《外交政策》(Foreign Policy)撰文称,美国若再不采取行动,将输掉人工智能竞赛,丧失全球霸主的地位。文章分析了相较于俄中两国,美国在人工智能领域的劣势和应采取何种应对措施。 大约60年前,当时的参议院多数党领袖Lyndon B. Johnson曾警告,谁赢得太空竞赛,谁就会获得对世界的绝对控制。 无独有偶,最近俄罗斯总统普京表示,“谁成为人工智能领域的领导者,谁就将成为世界的统治者。” Johnson和普京或许会被指责为过于夸张。 但是他们对技术力
新智元
2018/03/21
7080
基于天河超级计算机的新冠药物筛选成果入围国际戈登贝尔奖评选
11月4日,美国计算机协会(ACM)公布,国家超级计算天津中心联合国防科技大学计算机学院、海南大学药学院、中山大学药学院、中国海洋大学医药学院、美国肯塔基大学药学院等单位,在天河新一代超级计算机上完成的“基于自由能微扰-绝对结合自由能方法的大规模新冠药物虚拟筛选”工作成功入围2021年度的戈登贝尔新冠特别奖,这是我国首次入围该特别奖奖项。
DrugAI
2021/11/15
5020
基于天河超级计算机的新冠药物筛选成果入围国际戈登贝尔奖评选
中美决战百亿亿次E级超算冠军!天河三号原型机国产系统+芯片曝光
【新智元导读】中国自主研发的新一代百亿亿次超级计算机“天河三号”E级原型机完成研制部署!它采用了三种国产自主高性能计算和通信芯片,运算能力将比“天河一号”提高200倍,存储容量提高100倍!根据科技部计划,“天河三号”将于2020年研制成功。
新智元
2018/08/01
7840
中美决战百亿亿次E级超算冠军!天河三号原型机国产系统+芯片曝光
神威·太湖之光获戈登·贝尔奖,中国超算软硬兼施实现零的突破
【新智元导读】北京时间今日凌晨 4:20 时许美国盐湖城 SC16大会上,我国自主研发的超算系统“神威·太湖之光”继日前蝉联TOP 500世界第一殊荣后,一举拿下高性能计算应用最高奖“戈登•贝尔奖”,实现了我国在该奖项上零的突破,成为中国高性能计算应用发展新的里程碑。 2016年11月17日(北京时间 18日凌晨4:20左右),美国盐湖城 SC16 大会上,我国全自主国产处理器构建的超级计算机“神威·太湖之光”,继不久前蝉联TOP 500榜单世界第一后,一举拿下“戈登•贝尔”奖,实现了我国高性能计算应用在此
新智元
2018/03/26
1.7K0
神威·太湖之光获戈登·贝尔奖,中国超算软硬兼施实现零的突破
机器学习模拟1亿原子:中美团队获2020「超算诺贝尔奖」戈登贝尔奖
在前世界第一超算 Summit 上,研究人员在保持「从头算」精度的前提下成功模拟了 1 亿原子的运动轨迹,将超大系统的分子动力学模拟带进了一个新时代。
深度学习技术前沿公众号博主
2020/12/01
7840
机器学习模拟1亿原子:中美团队获2020「超算诺贝尔奖」戈登贝尔奖
HPC走出全新路线:《开放架构HPC技术与生态白皮书》注解
数字经济大时代,创新驱动大环境,HPC已不再是阳春白雪,而受到越来越多人的关注。
用户2908108
2023/02/26
7670
HPC走出全新路线:《开放架构HPC技术与生态白皮书》注解
黄学东等多名华人当选,2023美国工程院院士名单出炉
机器之心报道 机器之心编辑部 今日,美国工程院公布了新增院士名单,包括 106 名院士和 18 名外籍院士。 当选美国国家工程院院士是工程领域专家的最高专业荣誉之一,以表彰入选者「在工程研究、实践、教育等方面做出的重大贡献」,「在新兴领域技术做出的开拓性工作和传统工程领域中的重大贡献」以及「在开发 / 实施工程教育方面的创新贡献」。 在今年 10 月 举办的 NAE 年度会议上,这些新当选的成员将被正式任命。 本次入选的学者包括我们非常熟悉的机器学习研究者,如微软黄学东、哥大张世富等。 华人院士 张世富
机器之心
2023/02/23
4580
黄学东等多名华人当选,2023美国工程院院士名单出炉
云计算如何助力夯实制造业“底盘”?材料科学领域专家学者分享新材料前沿技术成果
新材料技术是我国制造业的“底盘技术”,在人工智能、云计算等信息技术的加持下,新材料的发现与设计、分析与计算迎来了哪些变化?8月26日,腾讯教育联合腾讯云、腾讯量子实验室、龙讯旷腾、NVIDIA共同举办云计算助力材料多尺度计算研讨会,邀请11位材料科学领域专家学者分享多尺度计算模拟与云计算领域的最新进展、技术及成果,推动多尺度计算模拟的理论发展和应用探索。 腾讯杰出科学家、腾讯量子实验室负责人张胜誉,龙讯旷腾CEO吕海峰,香港城市大学讲座教授张瑞勤,北京航空航天大学物理学院院长、教授吕广宏,中国科学院半导体
鹅老师
2022/09/02
6650
云计算如何助力夯实制造业“底盘”?材料科学领域专家学者分享新材料前沿技术成果
美国超算将重夺全球第一,性能超神威·太湖之光2倍
新智元编译 来源:Wired、top500.org 编辑:肖琴 【新智元导读】美国Summit超级计算机现在已经在美国橡树岭国家实验室运行,峰值运算速度达到200 petaflops,超神威·太湖
新智元
2018/06/22
6600
黄仁勋的速度与激情:让深度学习反哺科学计算
“众星捧月”。上榜项目让NVIDIA在最新的HPC TOP500榜单中显得格外亮眼——或者准确地说,是在“榜单背后”。
IT创事记
2022/06/16
4370
黄仁勋的速度与激情:让深度学习反哺科学计算
英伟达GPU化身造物主?从原子开始3D模拟活细胞,含500个基因,模拟只需20分钟
最近,来自伊利诺伊大学厄巴纳·香槟分校(University of Illinois at Urbana-Champaign)的研究人员成功在原子粒度上模拟了一个最小的活细胞(living minimal cell),使用到的加速设备为Nvidia Titan V和Tesla Volta V100显卡,成功将模拟时间压缩到20分钟内。
新智元
2022/02/24
4080
英伟达GPU化身造物主?从原子开始3D模拟活细胞,含500个基因,模拟只需20分钟
推荐阅读
这就是低配版「钢铁侠」吗?略输颜值,但毕竟是飞起来了
2770
云计算和仿真能擦出什么样的火花?
1.3K0
综述:CFD的未来之路
2K0
【Big Computing】HPC大计算,挑战深度学习的计算力黑洞
1K0
1%大气密度也能飞?NASA把无人机送上火星,最具野心探测计划启动
3910
更智能更高效-解析Autodesk CFD2018的新型CFD技术+全版本安装包
4690
刘军:18年“老兵”眼中的HPC与大数据、深度学习的融合
1.2K0
HPC技术趋势:HPDA、深度学习、软件定义和机柜即HPC
1.7K0
有哪些主流的科学计算是可以利用GPU加速?这一篇让你看明白!
3K0
美国削减科研经费限制移民,将输掉AI竞赛并丧失国际霸主地位
7080
基于天河超级计算机的新冠药物筛选成果入围国际戈登贝尔奖评选
5020
中美决战百亿亿次E级超算冠军!天河三号原型机国产系统+芯片曝光
7840
神威·太湖之光获戈登·贝尔奖,中国超算软硬兼施实现零的突破
1.7K0
机器学习模拟1亿原子:中美团队获2020「超算诺贝尔奖」戈登贝尔奖
7840
HPC走出全新路线:《开放架构HPC技术与生态白皮书》注解
7670
黄学东等多名华人当选,2023美国工程院院士名单出炉
4580
云计算如何助力夯实制造业“底盘”?材料科学领域专家学者分享新材料前沿技术成果
6650
美国超算将重夺全球第一,性能超神威·太湖之光2倍
6600
黄仁勋的速度与激情:让深度学习反哺科学计算
4370
英伟达GPU化身造物主?从原子开始3D模拟活细胞,含500个基因,模拟只需20分钟
4080
相关推荐
这就是低配版「钢铁侠」吗?略输颜值,但毕竟是飞起来了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验