记一次Spark Kerberos的故障解决

Spark On YARN启动流程源码分析 1、spark-submit入口介绍 一般的spark作业都是通过命令行spark-submit相关的指令来进行提交,使用--master yarn来指定提交到对应的yarn集群上,如下: ./bin/spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ --driver-memory 4g \ --executor-memory 阅读详情

有同事反馈,Livy Server启动的所有Spark AM失败。Livy启动的Spark AM默认会enableHiveSupport,且使用$LIVY_HOME/conf/livy.conf的如下配置作为spark.yarn.keytab和spark.yarn.kerberos。

livy.server.launch.kerberos.keytab

livy.server.launch.kerberos.principal

由于不知道报错信息,查看Spark AM log,有所发现:

Attempting to login to Kerberos using principal: ...

...

GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]

说明spark.yarn.principal和spark.yarn.keytab已经设置,但是校验Kerberos ticket失败了。根据错误信息,对照Spark-Hive的代码HiveClientImpl.scala.

 

// Set up kerberos credentials for UserGroupInformation.loginUser within
// current class loader
if (sparkConf.contains("spark.yarn.principal") && sparkConf.contains("spark.yarn.keytab")) {
  val principalName = sparkConf.get("spark.yarn.principal")
  val keytabFileName = sparkConf.get("spark.yarn.keytab")
  if (!new File(keytabFileName).exists()) {
    throw new SparkException(s"Keytab file: ${keytabFileName}" +
      " specified in spark.yarn.keytab does not exist")
  } else {
      logInfo("Attempting to login to Kerberos" +
          s" using principal: ${principalName} and keytab: ${keytabFileName}")
      UserGroupInformation.loginUserFromKeytab(principalName, keytabFileName)
  }
}

 

UserGroupInformation.loginUserFromKeytab有如下方法调用。若isSecurityEnabled()返回false,跳过初始化。且loginUserFromKeytab会打印log:Login successful for user ... 。Spark AM日志未见此条Log。怀疑加载了默认Hadoop Configuration对象。

public static boolean isSecurityEnabled() {
  return !isAuthenticationMethodEnabled(AuthenticationMethod.SIMPLE);
}

private static boolean isAuthenticationMethodEnabled(AuthenticationMethod method) {
  ensureInitialized();
  return (authenticationMethod == method);
}

private static synchronized void ensureInitialized() {
  if (conf == null) 
    initialize(new Configuration(), false);
  }
}

于是询问该同事,是否有任何配置变更,最终确定有人变动了Hadoop *-site.xml的目录。于是修改HADOOP_CONF_DIR,重启Livy Server。问题解决。

总结:

1. 线上环境的任何变更,必须评估其影响面,且通知到相关同事。

2. 充分了解故障发生前的一些情况,有助于快速定位故障原因。

 

 

 

Kerberos 集成:Hadoop/HBase/Spark 安全认证 TGS → Client: Service Ticket(用Service密钥加密)Client → TGS: TGT + 请求Service Ticket。AS → Client: TGT(用Client密钥加密)-- Container执行用户 -->"""自动更新Kerberos票据"""-- DataNode安全配置 -->-- NameNode安全配置 -->-- ZooKeeper认证 -->-- 启用Kerberos -->-- 启用Kerberos -->// 3. 在Driver端认证。 阅读详情

相关推荐

【spark】【在YARN上运行Spark】【Running Spark on YARN】

通常情况下,这并不重要,因为Spark在开始另一个阶段之前完成了一个阶段,唯一可能有影响的情况是在作业服务器类型的场景中,所以需要记住这一点。例如,当运行一个YARN集群,其中运行多个Spark版本的应用程序的混合工作负载时,这可能很有帮助,因为给定版本的shuffle服务并不总是与其他版本的Spark兼容。Spark发行版,由于它已经包含了内置的Hadoop运行时,默认情况下,当作业提交到Hadoop Yarn集群时,为了防止jar冲突,它不会将Yarn的classpath填充到Spark中。

wq6qeg88的博客 1397

Spark on YARN的重要参数

Spark属性或者去源码找Class类 SparkSubmitArguments,最全了属性名称默认含义spark.yarn.am.memory512m用于客户端模式下的YARN Application Master的内存量,格式与JVM内存字符串(例如512m,2g)相同。在集群模式下,spark.driver.memory改为使用。使用小写字母后缀,例如k,m,g,t,和p,为kibi-,me...

qq_15300683的博客 5110

Kyuubi + SparkSQL 高可用集群部署全攻略(含Kerberos认证配置)

本文详细介绍了Kyuubi + SparkSQL高可用集群的部署全攻略,包括Kerberos认证配置。从环境准备、组件选型到核心部署与优化配置,提供了生产环境中的实战经验和解决方案,帮助用户构建稳定可靠的大数据查询服务。

weixin_30296405的博客 680

Spark on Yarn 部署模式运行常用参数和认证参数理解

spark 提交任务参数说明

多头注意力探索Now 1943

Spark-3.2.4高可用集群搭建避坑指南:从Anaconda配置到Zookeeper主备切换

本文详细解析了Spark 3.2.4高可用集群的搭建与优化,从Anaconda环境配置到Zookeeper主备切换的全流程。通过实战演示和关键参数调优,帮助开发者规避常见陷阱,提升集群的稳定性和性能,适用于企业级生产环境部署。

weixin_30825581的博客 508

避坑指南:DBeaver连接Spark-SQL时常见的5个配置错误及解决方法

本文针对DBeaver连接Spark-SQL时常见的配置难题,提供了详细的避坑指南。重点解析了网络端口、JDBC驱动、权限认证、资源配置及Hive Metastore连接这五大核心环节的典型错误现象与解决方案,帮助用户高效排查并建立稳定连接,从而提升数据操作效率。

weixin_28224217的博客 256

Spark 框架安全认证实现

导言 随着大数据集群的使用,大数据的安全受到越来越多的关注一个安全的大数据集群的使用,运维必普通的集群更为复杂。 集群的安全通常基于kerberos集群完成安全认证。kerberos基本原理可参考:一张图了解Kerberos访问流程 Spark应用(On Yarn模式下)在安全的hadoop集群下的访问,需要访问各种各样的组件/进程,如ResourceManager,NodeManager,N...

hellozhxy的博客 3291

【spark床头书系列】如何在YARN上启动Spark官网权威详解说明

在YARN上可以使用两种部署模式来启动Spark应用程序。在 `cluster` 模式下,Spark driver 在由YARN在集群上管理的应用程序主进程中运行,客户端在启动应用程序后可以退出。在 `client` 模式下,driver 在客户端进程中运行,应用程序主进程仅用于从YARN请求资源

wang2leee的博客 682

Spark 在YARN上运行

在YARN上运行Spark 安全 在YARN上启动Spark 添加其他JAR 准备工作 组态 调试您的应用程序 Spark特性 重要笔记 的Kerberos YARN特定的Kerberos配置 Kerberos故障排除 配置外部随机播放服务 使用Apache Oozie启动您的应用程序 使用Spark History Server替换Spark Web U...

大强博客 5720

思科—OSPF多区域配置实验

实验目的:配置OSPF多区域,使得不同网段的PC互相ping通。 网络拓扑如下: R0的配置 Router>en Router#conf t Router(config)#int g0/1 Router(config-if)#ip add 192.168.1.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int g0/0 Router(config-if)#ip add 192.168.

m0_46237205的博客 1万+

Windows安装Pytorch3d

pytorch和pytorch3d版本对应关系如下:https://github.com/facebookresearch/pytorch3d/releasescuda和NVIDIA CUB版本对应关系如下:https://github.com/NVIDIA/cub/releases?page=1本人配置如下:GPU:1050TiCUDA:11.1python:3.8。

Snakewood的博客 4285

[Zeppelin] Kerberos环境Spark用户模拟踩坑全集

文章目录Kerberized SparkZeppelin连接Kerberized Spark用户模拟配置用户认证获取超级管理员keytab配置用户模拟TroubleshootJAR包版本冲突Zeppelin重启后无法登录没有安装Spark客户端如何验证Spark解释器正常工作总结 在上一篇文章里我们在Zeppelin中使用了local模式的Spark解释器,而在本文中,我们将学习如何在Zeppel...

硬学AI工坊 2000

使用Qt Creator调用eBUS SDK

在新界面,勾选左下角“ Show unreachable Network Devices",可以看到没有成功连接的网络相机,原因是IP地址配置错误。每个版本的OpenCV的依赖项的名字都不同,我这里是opencv_world490.lib与opencv_world490d.lib。函数,可以看到在这里是图像缓存区,能够对捕获的图像进行一些操作。在Visual Studio打开项目属性,在VC++目录这里,把Opencv的路径添加进去。这时,会自动跳转到mainwindow.cpp,生成该按钮对应的槽函数。

qq_35685051的博客 1287

驯服三头野兽:了解Kerberos以对Hadoop安全性进行故障排除

Three years ago, I was tasked with migrating the data analysis stack of a company with millions of daily active users from its traditional SQL-based infrastructure to Apache Hadoop. Back then, I consi...

weixin_26722031的博客 1098

深入解析JESD204B Periodic SYSREF在多ADC/DAC系统中的同步优化策略

本文深入探讨了JESD204B Periodic SYSREF在多ADC/DAC系统中的同步优化策略,针对雷达阵列和宽带通信系统中的同步精度问题,详细解析了硬件实现细节、参数配置实战经验及系统级优化方法。通过案例分析和技术要点,帮助工程师解决由温度漂移和时钟抖动引起的同步挑战,提升系统性能。

weixin_29267307的博客 137

基于STM32L4XX、HAL库的RTL8211FSI-CG以太网收发器(PHY)驱动程序设计

一、简介:RTL8211FSI-CG是Realtek公司生产的一款高性能、低功耗的单端口10/100M以太网收发器(PHY)。它通过RMII(Reduced Media Independent Interface)或MII接口与MAC控制器连接。

zhusl6688的博客 531

Kerberos认证协议详解:原理、配置与大数据平台实战

在分布式系统与大数据平台中,身份认证是保障数据与服务安全的核心基础。Kerberos作为一种成熟、严谨的网络身份认证协议,通过引入可信的密钥分发中心(KDC),利用对称加密和票据机制,实现了在不安全网络环境下的安全身份鉴别与单点登录。其核心价值在于解决了服务间与用户访问的“你是谁”和“你是否有权”两大根本问题,避免了密码在网络中明文传输的风险。该协议广泛应用于Hadoop、Spark等大数据生态,是企业级安全方案的标配。在实际运维中,常会遇到“kerberos用户锁定”和“ambari的kerberos修改

weixin_33736832的博客 505

让 ABAP 内表真正释放内存:从 CLEAR、FREE 到打破 Table Sharing 的实战技巧

ABAP内表内存管理的关键在于理解其运行时结构:DELETE操作仅逻辑删除行而不会释放内存,CLEAR或FREE才能真正回收内存。常见的误区包括误判空表状态和忽视内表共享机制。实际应用中,大表筛选后应采用VALUE表达式或逐行插入方式重建表体以释放内存。典型案例显示,正确处理内表内存可显著降低SAP Gateway和批处理程序的内存消耗,提升系统稳定性。开发时需结合调试工具观察内存状态,避免因共享机制导致无效回收。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 324

kerberos系列技术文档总结

kerberos系列技术文档持续总结

wang2leee的博客 1053

【信号与系统】Multisim 仿真信号合成与分解

软件 Multisim 进行方波信号的产生、分解和合成,观察信号波形的分解与合成,加深对信号频谱的理解。

AXYZdong的博客 2万+

电容放电测试解析

电子设备断电后滤波电容残留电荷存在触电风险,需符合IEC等安全标准对放电时间的要求。放电测试需测量电容电压下降至安全值的时间,设计可采用主动放电电路或被动放电电阻。常见问题包括电阻选择不当或电路设计缺陷,建议预留放电时间裕度并采用组合放电方案。合规的放电设计是确保产品安全性和可靠性的关键环节。

硬核科技 799

Apache Kyuubi故障排查手册:常见问题与解决方案大全

Apache Kyuubi是一个分布式多租户网关,为数据仓库和数据湖提供无服务器SQL服务。在使用过程中,用户可能会遇到各种技术问题,本手册汇总了最常见的故障类型及其解决方案,帮助您快速定位并解决问题,确保Kyuubi服务稳定运行。 ## 一、环境配置问题 ### 1.1 Java版本不兼容错误 **错误信息**: ``` Exception in thread "main" java.la

gitblog_00709的博客 421

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Spark 3.2.4 on YARN 部署实战:Client 与 Cluster 模式 5 大差异与选型指南

本文深度解析Spark 3.2.4在YARN上的两种部署模式——Client与Cluster的五大核心差异,包括Driver位置、资源申请机制、日志管理、故障恢复能力及安全控制。通过实战案例和性能对比,提供选型指南,帮助开发者根据生产环境或调试需求选择最优部署方案,提升Spark应用性能和稳定性。

weixin_34221036的博客 328

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

数据工程师实战指南:Hadoop、Spark、Flink等五大框架生产调优与避坑

大数据(Big Data)指在分布式环境下对海量、高速、多样数据进行采集、存储、计算与服务的系统性工程能力。其核心原理在于通过分而治之(Shuffle/Partition)、容错重试(Speculative Execution/Checkpointing)和统一资源调度(YARN/K8s)保障SLA。技术价值体现在降低TCO、提升分析时效性与支撑实时决策闭环。典型应用场景包括电商用户行为分析、金融风控实时拦截、IoT设备时序处理等。本文聚焦Hadoop、Spark、Flink、Hive、Storm五大高频框

weixin_30772105的博客 777

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

46.CM配置Spark1&2的运行环境

46.1 演示环境 CDH集群服务正常 CM和CDH版本:5.11.2 集群已启用Kerberos Spark On Yarn模式 jdk1.8.0_151 46.2 操作演示 部署JDK 可以根据你自己开发环境JDK版本进行调整。 将需要的JDK版本部署到集群所有节点,此处配置以一个节点为例 -注意:JDK的HOME目录必须统一,这样方便在CM统一管理配置。 [ec2-user@ip-172-31-21-45 jdk1.8]$ sudo tar -zxvf jdk-8u151-linux-x

大勇若怯任卷舒 283

CentOS 7 环境下 Spark 多模式部署与实战配置指南

本文详细介绍了在CentOS 7环境下Spark的多模式部署与实战配置指南,包括Local模式、Standalone集群和Yarn模式的安装与优化。内容涵盖环境准备、基础安装、集群配置、高可用设置以及生产环境优化,帮助开发者高效部署和调优Spark应用。

weixin_30650039的博客 362
上一篇: Hive Storage Handler入门和实战
下一篇: Spark Streaming Receiver学习
chncaesar
博客等级 码龄25年 13粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值