java - 在作业页面上隐藏通过 Spark-Submit 传递的敏感参数

标签 java apache-spark hadoop-yarn

我最近发现 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 对象上),它是否会反射(reflect)在页面上?如何修改该属性?

我认为这是一个需要解决(或解决)的非常重要的安全问题。任何想法都将不胜感激。

最佳答案

所以,我最终要做的是调整用于执行 Spark 作业的代码,例如:

SparkConf conf = new SparkConf()
            .setAppName(application.getApplicationName())
            .set("sun.java.command", "Dummy Command String...");

然后,使用该 .JAR 创建我们所有的 Spark 作业工具。由 MAVEN 处理的依赖关系使这一切变得非常简单。就业机会按其应有的方式创建,只是特定的属性发生了变化。

关于java - 在作业页面上隐藏通过 Spark-Submit 传递的敏感参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41382353/

相关文章:

apache-spark - 为什么 SparkListenerApplicationStart 永远不会被触发?

apache-spark - 将 scikit-learn 与 pyspark 集成

apache-spark - 根据 Spark 中的条件获取行索引

java - Hibernate、泛型、类型安全 : Unchecked cast from List to List<T>

java - Android 如何将带有重音符号的文本发送到 PHP

java - 如何在我的 UI 中使用 vaadin 显示图片

hadoop - 在 Docker 容器上使用 Hadoop 和 Spark

python - 在 Yarn 上运行 Spark 官方 python 机器学习示例失败

hadoop - 如何在 Hadoop 中查找用户运行的作业数量?

java - 给定一个 java 类的 Web 服务架构