SecurityManager 是什么?有什么作用?

前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系

正文

SecurityManager 主要对账号、权限及身份认证进行设置和管理。

如果 Spark 的部署模式为 YARN ,则需要生成 secret key (密钥)并存入 Hadoop UGI 。

而在其他模式下,则需要设置环境变量 _SPARK_AUTH_SECRET (优先级更高)或 spark.authenticate.secret 属性指定 secret key (密钥)。

SecurityManager 还会给当前系统设置默认的口令认证实例。

SecurityManager 源码类注释 (3.2.0-SNAPSHOT)

/**
 * spark 中负责安全的类。 
 * 
 * 一般来说,这个类应该由SparkEnv实例化,大多数组件应该从SparkEnv访问它。
 * 
 * 有些情况下SparkEnv还没有初始化,必须直接实例化这个类。 
 * 
 * 此类实现了与“Security”文档中描述的安全特性相关的所有配置。
 * 
 * 请参阅该文档以了解此处实现的特定功能。
 * 
 * @param sparkConf Spark 的配置对象 
 * @param ioEncryptionKey IO 加密密钥字节数组
 * @param authSecretFileConf 来自配置项:spark.authenticate.secret.driver.file(Driver)或者 spark.authenticate.secret.executor.file(Executor)
 */
private[spark] class SecurityManager(
    sparkConf: SparkConf,
    val ioEncryptionKey: Option[Array[Byte]] = None,
    authSecretFileConf: ConfigEntry[Option[String]] = AUTH_SECRET_FILE)
  extends Logging with SecretKeyHolder

SecretKeyHolder 源码解读(3.2.0-SNAPSHOT)

package org.apache.spark.network.sasl;

/**
 * 用于获取与某个应用程序相关联的密钥的接口。
 */
public interface SecretKeyHolder {
  /**
   * 获取给定appId的合适的SASL用户。
   * @throws IllegalArgumentException 如果给定的appId未与SASL用户关联
   */
  String getSaslUser(String appId);

  /**
   * 获取给定appId的适当SASL密钥。
   * @throws IllegalArgumentException 如果给定的appId未与SASL密钥关联。
   */
  String getSecretKey(String appId);
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值