我最近发现Spark在Job Page上显示传递给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对象上)它会反映在页面上吗?如何修改该属性?
我认为这是一个非常重要的安全问题需要解决(或解决)。非常感谢任何想法。
答案 0 :(得分:1)
所以,我最后做的是调整用于执行我们的火花工作的代码,例如:
SparkConf conf = new SparkConf()
.setAppName(application.getApplicationName())
.set("sun.java.command", "Dummy Command String...");
然后,使用该.JAR创建我们所有的Spark Job Tools。 MAVEN处理的依赖性使这非常容易。工作按原样创建,只是特定属性被更改。