Spark独立集群的身份验证

Ima*_*ari 6 security authentication hadoop apache-spark pyspark

我有一个在远程服务器上运行的独立Spark集群,并且是Spark的新手。似乎没有默认的身份验证方案保护群集主服务器的(7077)端口。任何人都可以简单地将自己的代码提交给集群,而没有任何限制。

星火文件规定,认证是可能在单机部署模式下使用的spark.authenticate.secret参数,但并没有真正细说究竟这应该被使用。

是否可以使用某种共享机密,以防止任何潜在的攻击者向集群提交任务?谁能解释一下如何精确配置?

lev*_*lev 6

有2个部分可启用对身份验证的支持:

  1. 在主人和所有奴隶上设置秘密
  2. 向集群提交作业时使用相同的秘密

主人和奴隶

在群集中的每个服务器上,将以下配置添加到conf/spark-defaults.conf

spark.authenticate.secret      SomeSecretKey
Run Code Online (Sandbox Code Playgroud)

提交工作

初始化spark上下文时,还应向其添加相同的配置,即:

val conf = new SparkConf()
      .set("spark.authenticate.secret", "SomeSecretKey")
val sc = new SparkContext(conf)
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用的是SparkSession:

val spark = SparkSession.builder()
    .conf("spark.authenticate.secret", "SomeSecretKey")
    .getOrCreate()
Run Code Online (Sandbox Code Playgroud)

  • 如果不使用 YARN,两个是设置“spark.authenticate true”和“spark.authenticate.secret SomeSecretKey”的参数 (2认同)