在作业页面上隐藏通过 spark-submit 传递的敏感参数
Hide sensitive arguments passed with spark-submit on the Job Page
我最近发现 Spark 会在作业页面上显示传递给 spark-submit 命令的命令行参数。我需要编辑敏感参数,例如页面中的密码。
确切位置:环境 选项卡 > 系统属性 部分 > sun.java.command 属性。
显示的示例:
org.apache.spark.deploy.yarn.ApplicationMaster --class com.xxx.xxx.sparkexport.bus.SparkExport --jar file:/xx/hadoop/jar/xx/xx.jar --arg -c --arg jdbc:dbserv://xx.xx.xx.com:2633 --arg -d --arg ActionS --arg -D --arg ActionS --arg -C --arg xx_Hadoop --arg -q --arg SELECT xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx FROM xyy WHERE zz= '2016-12-28' AND aa= '11' --arg -t --arg bb--executor-memory 8192m --executor-cores 1 --properties-file /hadoop/yarn/nm/usercache/xx/appcache/application_1482736206018_6501/container_e134_1482736206018_6501_01_000001/__spark_conf__/__spark_conf__.properties
我在网上搜索过,但没有找到。我在想,如果我可以找到并修改该字符串(在 SparkContext 对象上),它是否会反映在页面上?那属性怎么修改呢?
我认为这是一个需要解决(或解决)的非常重要的安全问题。非常感谢任何想法。
所以,我最终做的是调整用于执行我们的 spark 作业的代码,例如:
SparkConf conf = new SparkConf()
.setAppName(application.getApplicationName())
.set("sun.java.command", "Dummy Command String...");
然后,使用该 .JAR 创建我们所有的 Spark 作业工具。 MAVEN 处理的依赖关系使这变得非常容易。作业按应有的方式创建,只是特定的 属性 发生了变化。
我最近发现 Spark 会在作业页面上显示传递给 spark-submit 命令的命令行参数。我需要编辑敏感参数,例如页面中的密码。
确切位置:环境 选项卡 > 系统属性 部分 > sun.java.command 属性。
显示的示例:
org.apache.spark.deploy.yarn.ApplicationMaster --class com.xxx.xxx.sparkexport.bus.SparkExport --jar file:/xx/hadoop/jar/xx/xx.jar --arg -c --arg jdbc:dbserv://xx.xx.xx.com:2633 --arg -d --arg ActionS --arg -D --arg ActionS --arg -C --arg xx_Hadoop --arg -q --arg SELECT xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx FROM xyy WHERE zz= '2016-12-28' AND aa= '11' --arg -t --arg bb--executor-memory 8192m --executor-cores 1 --properties-file /hadoop/yarn/nm/usercache/xx/appcache/application_1482736206018_6501/container_e134_1482736206018_6501_01_000001/__spark_conf__/__spark_conf__.properties
我在网上搜索过,但没有找到。我在想,如果我可以找到并修改该字符串(在 SparkContext 对象上),它是否会反映在页面上?那属性怎么修改呢?
我认为这是一个需要解决(或解决)的非常重要的安全问题。非常感谢任何想法。
所以,我最终做的是调整用于执行我们的 spark 作业的代码,例如:
SparkConf conf = new SparkConf()
.setAppName(application.getApplicationName())
.set("sun.java.command", "Dummy Command String...");
然后,使用该 .JAR 创建我们所有的 Spark 作业工具。 MAVEN 处理的依赖关系使这变得非常容易。作业按应有的方式创建,只是特定的 属性 发生了变化。