更新时间:2025-06-10 GMT+08:00

配置Spark任务不获取HBase Token信息

操作场景

使用Spark提交任务时,Driver默认会去HBase获取Token,访问HBase则需要配置文件“jaas.conf”进行安全认证。此时如果用户未配置“jaas.conf”文件,会导致应用运行失败。

因此,根据应用是否涉及HBase进行以下处理:

  • 当应用不涉及HBase时,即无需获取HBase Token。此时,将“spark.yarn.security.credentials.hbase.enabled”设置为“false”即可。
  • 当应用涉及HBase时,将“spark.yarn.security.credentials.hbase.enabled”设置为“true”,且需要在Driver端配置“jaas.conf”文件,配置如下:
    {client}/spark/bin/spark-sql  --master yarn-client --principal {principal} --keytab {keytab} --driver-java-options "-Djava.security.auth.login.config={LocalPath}/jaas.conf"

    “jaas.conf”中指定Keytab和Principal,示例如下:

    Client {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    keyTab = "{LocalPath}/user.keytab"
    principal="super@<系统域名>"
    useTicketCache=false
    debug=false;
    };

配置描述

  1. 安装Spark客户端。

    详细操作请参考安装MRS客户端

  2. 使用客户端安装用户登录Spark客户端节点。

    在Spark客户端的“{客户端安装目录}/Spark/spark/conf/spark-defaults.conf”配置文件中进行设置,修改如下参数:

    表1 参数说明

    参数

    说明

    配置示例

    spark.yarn.security.credentials.hbase.enabled

    HBase是否获取Token:

    • true:获取
    • false:不获取

    false