You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Standalone Spark集群访问Kerberos认证Hadoop失败问题咨询

Standalone Spark集群访问Kerberos认证Hadoop的配置问题

环境信息

  • Spark 3.3.1 Standalone集群(1主3从)
  • Hadoop 3.3.2,已配置Kerberos认证
  • Hive Metastore 3.0.0,作为Spark会话目录及Iceberg存储目录
  • 客户端通过keytab可正常读写Hadoop;Hive Metastore配置hive/fqdn principal后运行正常,使用该principal执行kinit并通过klist验证身份有效
  • 已将Hadoop的core-site.xml、hdfs-site.xml及Hive的hive-site.xml放入Spark集群所有节点的配置目录

尝试的配置及对应错误

尝试三种Kerberos身份认证配置方式,均出现spark-sql启动、建表、truncate表、查看表结构/列表正常,但insert等DML操作及select查询失败的情况,具体如下:

  1. 集群节点配置文件固定参数

    • 在Spark主、从节点的spark-defaults.conf中配置:spark.kerberos.keytab、spark.kerberos.principal(使用超级用户hdfs/fqdn)
    • 执行查询时错误:Can't get Master Kerberos principal for use as renewer
  2. CLI命令行传递参数

    • 不修改集群节点的spark-defaults.conf,启动spark-sql时通过参数传递:spark-sql --keytab <keytab文件路径> --principal <principal>
    • 执行查询时错误:Client cannot authenticate via:[TOKEN, KERBEROS]
  3. 本地手动获取TGT后启动

    • 不配置Spark的Kerberos相关参数,在执行spark-sql前,用目标principal执行kinit获取TGT
    • 执行查询时错误:SIMPLE authentication is not enabled

补充说明

  • 暂不考虑使用YARN模式部署Spark
  • 本地模式测试结果:Hive格式表操作失败,但Iceberg表可正常执行DML及查询,不过本地模式无法满足集群扩容需求

问题咨询

  1. Standalone Spark集群是否支持访问开启Kerberos认证的Hadoop集群?
  2. 若支持,求正确的配置示例;若不支持,求Spark访问安全Hadoop的可行替代方案

内容的提问来源于stack exchange,提问作者robert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 20:57:50