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

在Kerberos认证的Hadoop 3.0集群部署Spark 2.3并启用安全配置

看起来你已经完成了Spark部署的基础配置,接下来我帮你补全Kerberos认证相关的关键配置,让Spark能完美适配你的安全Hadoop集群:

一、完善spark-env.sh的Kerberos环境配置

你已经设置了YARN_CONF_DIR指向Hadoop配置目录,现在需要添加Kerberos相关的环境变量:

  • 指定Kerberos配置文件路径(根据你的实际部署路径调整):
    export KRB5_CONFIG=/etc/krb5.conf
    
  • 配置Spark服务的Kerberos主体和密钥表:
    export SPARK_KERBEROS_PRINCIPAL=spark/_HOST@YOUR_KERBEROS_REALM
    export SPARK_KERBEROS_KEYTAB=/opt/spark/conf/spark.keytab
    
    这里_HOST会自动替换为节点的主机名,YOUR_KERBEROS_REALM替换成你的Kerberos域名,密钥表路径要对应你为Spark生成的有效keytab文件。
二、补全spark-defaults.conf的安全核心配置

你已经配置了spark.master=yarn和spark.submit.deployMode=cluster,现在补充Kerberos认证的关键参数:

  • 启用Spark自身的认证机制:
    spark.authenticate=true
    spark.yarn.access.hadoopFileSystems=hdfs://your-namenode-host:8020
    
  • 配置YARN模式下的Kerberos认证信息:
    spark.yarn.principal=spark/_HOST@YOUR_KERBEROS_REALM
    spark.yarn.keytab=/opt/spark/conf/spark.keytab
    spark.yarn.security.credentials.hdfs.enabled=true
    
  • 确保Spark访问HDFS的安全适配:
    spark.hadoop.hadoop.security.authentication=kerberos
    spark.hadoop.hadoop.security.authorization=true
    
  • 如果你的业务需要访问其他安全组件(比如HBase、Hive),还需要添加对应组件的Kerberos配置,例如HBase的配置:
    spark.hadoop.hbase.security.authentication=kerberos
    spark.hadoop.hbase.master.kerberos.principal=hbase/_HOST@YOUR_KERBEROS_REALM
    
三、Kerberos权限与票据准备
  • 确保Spark密钥表的权限正确,避免非授权访问:
    chmod 400 /opt/spark/conf/spark.keytab
    chown spark:spark /opt/spark/conf/spark.keytab
    
    这里的spark:spark替换为你的Spark运行用户和用户组。
  • 如果是使用用户身份提交任务,提交前需要先获取Kerberos票据:
    kinit -kt /path/to/your-user.keytab your-user-principal@YOUR_KERBEROS_REALM
    
四、验证配置有效性

提交一个简单的Spark Pi任务来测试整个流程:

spark-submit --class org.apache.spark.examples.SparkPi \
  --master yarn \
  --deploy-mode cluster \
  $SPARK_HOME/examples/jars/spark-examples_2.11-2.3.0.jar \
  10

提交后查看YARN的Application日志,如果没有出现Authentication failed或Kerberos相关的错误,任务正常输出计算结果,就说明配置成功了。

额外注意事项

  • 确保集群所有节点的Spark配置(spark-env.sh、spark-defaults.conf)完全一致
  • 确认Kerberos KDC服务运行正常,所有节点的krb5.conf配置统一
  • 确保你下载的Spark 2.3二进制包是针对Hadoop 3.x版本编译的,避免兼容性问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:44:10