配置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和Prinical,示例如下:
Client { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab = "{LocalPath}/user.keytab" principal="super@<系统域名>" useTicketCache=false debug=false; };
配置描述
在Spark客户端的“spark-defaults.conf”配置文件中进行设置。
参数 |
说明 |
默认值 |
---|---|---|
spark.yarn.security.credentials.hbase.enabled |
HBase是否获取Token:
|
false |