У меня есть приложение Spark, написанное на Scala, и я настраиваю Spark Configuration через приложение, и хотел реализовать шифрование для моих переменных среды Spark. Таким образом, содержимое должно быть зашифровано на уровне приложения, а также на панели инструментов Yarn (вкладка «Среда»)
Какие конкретные свойства или параметры необходимо настроить c для реализации этого подхода.
Пример как я передаю прямо сейчас -
val conf = new SparkConf()
.set("spark.master", "spark.master")
.set("spark.yarn.tags", "spark.appname")
.set("spark.driver.allowMultipleContexts", "true")
.set("spark.cassandra.output.consistency.level", "ANY")
.set("spark.cassandra.connection.host", "cassandra.hosts")
.set("spark.cassandra.auth.username", "cassandra.username")
.set("spark.cassandra.auth.password", "cassandra.password")
.set("spark.cassandra.output.ignoreNulls", "true")
.set("spark.cassandra.output.batch.grouping.key", "partition")
.set("spark.cassandra.output.batch.size.rows", "1")
.set("spark.cassandra.connection.connections_per_executor_max", "15")
.set("spark.cassandra.output.concurrent.writes", "512")
.set("spark.sql.shuffle.partitions", "sparkjob.shufflepartition")
.set("spark.cassandra.concurrent.reads", "512")
.set("spark.cassandra.output.batch.grouping.buffer.size", "1000")
.set("spark.cassandra.connection.keep_alive_ms", "600000000")
.set("spark.streaming.stopGracefullyOnShutdown", "true")
.set("spark.stream.receiver.WriteAheadLog.enable", "true")
.set("spark.ui.port ", "52748")
.set("spark.mongodb.output.uri", "mongodb://" +
"mongo.username" + ":" + "mongo.password" + "@" +
"mongo.hosts" + "/" + "mongo.dbname" + "?authSource=" + "mongo.authdatasource")
.setAppName("spark.appname".getConfigValue)
Ниже приведена панель инструментов Spark Yarn - вкладка «Окружение», в которой отображаются все учетные данные, имя хоста и другие важные переменные. Необходимо иметь Зашифрованное значение здесь.