我有一个在远程服务器上运行的独立Spark群集,我是Spark的新手。似乎默认情况下没有身份验证方案保护群集主服务器(7077)端口。任何人都可以简单地将自己的代码提交到集群,没有任何限制。
Spark documentation表示使用spark.authenticate.secret
参数在独立部署模式下进行身份验证是可能的,但并未真正详细说明应如何使用此参数。
是否可以使用某种共享密钥来阻止任何潜在的攻击者向群集提交任务?任何人都可以解释一下如何配置?
答案 0 :(得分:5)
有2个部分可以支持身份验证:
在群集中的每台服务器上,将以下配置添加到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()