Spark独立集群的身份验证

时间:2017-12-20 14:52:40

标签: security hadoop authentication apache-spark pyspark

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

Spark documentation表示使用spark.authenticate.secret参数在独立部署模式下进行身份验证是可能的,但并未真正详细说明应如何使用此参数。

是否可以使用某种共享密钥来阻止任何潜在的攻击者向群集提交任务?任何人都可以解释一下如何配置?

1 个答案:

答案 0 :(得分:5)

有2个部分可以支持身份验证:

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

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

    spark.authenticate.secret      SomeSecretKey
    

    提交工作

    初始化spark上下文时,您也应该为它添加相同的配置,即:

    val conf = new SparkConf()
          .set("spark.authenticate.secret", "SomeSecretKey")
    val sc = new SparkContext(conf)
    

    或者如果您使用的是SparkSession:

    val spark = SparkSession.builder()
        .conf("spark.authenticate.secret", "SomeSecretKey")
        .getOrCreate()