【问题标题】:How to set -javaagent in spark-submit如何在 spark-submit 中设置 -javaagent
【发布时间】:2018-10-03 10:12:22
【问题描述】:

我在一个 Java Maven 项目中使用了面向方面的编程来进行日志记录。

在通过eclipse运行时,我必须在vmargs中初始化javaagent,如下:

    -javaagent:lib/aspectjweaver-1.9.1.jar

现在我想将生成的 jar 提交给 Spark 工作人员。我已经写了一个shell脚本来做到这一点。我可以运行但无法初始化 javaagent。

export SPARK_PATH=/xyz
export SPARK_URL=spark://abc:0000
export JAVA_OPTS="$JAVA_OPTS -javaagent:../aspectweaver-1.9.1.jar"
$SPARK_PATH/spark-submit --master $SPARK_URL  --jars  --class com.main.index ../index-0.0.1-SNAPSHOT.jar

我已经尝试了许多示例,例如设置 JAVA_OPTS 和 CATALINE_OPTS,创建 spark-env.sh 并设置它。但这一切都没有奏效。过去 3 天一直在挣扎。

我在 stackoverflow 上检查了几个类似的问题,但没有一个对设置 javaagent 有帮助。帮助。

谢谢。

编辑:

我正在使用以下代码检查 javaagent 是否已在代码中初始化:

try {
            org.aspectj.weaver.loadtime.Agent.getInstrumentation();
        } catch (NoClassDefFoundError | UnsupportedOperationException e) {
            System.out.println(e);
        }

我得到 NoClassDefFoundError。得出的结论是 javaagent 没有设置。

【问题讨论】:

  • JAVA_OPTS="JAVA_OPTS … 应该是JAVA_OPTS="$JAVA_OPTS …
  • @Biffen 错字。我已经确定语法是正确的。我什至尝试过类似 %JAVA_OPTS% 的东西,我在其中一个博客中查看过。他们都没有帮助。
  • Spark 有驱动程序和执行程序。他们有单独的 JAVA_OPTS
  • @cricket_007 我该如何解决?有没有办法为驱动程序和执行程序设置 JAVA_OPTS?
  • 搜索extraJavaOptionsspark.apache.org/docs/latest/…

标签: shell apache-spark sh jvm-arguments javaagents


【解决方案1】:

我得到了答案,我不得不使用“--driver-java-options”。以下是更新后的脚本。

$SPARK_PATH/spark-submit --master $SPARK_URL --driver-java-options "-javaagent:../aspectjweaver-1.9.1.jar" --class com.main.index ../index-0.0.1-SNAPSHOT.jar "$1"

【讨论】:

  • 我很确定该选项已复制到 spark.driver.extraJavaOptionsconfiguration
猜你喜欢
  • 2019-01-09
  • 2017-06-23
  • 2014-10-03
  • 1970-01-01
  • 2011-07-18
  • 1970-01-01
  • 2020-05-20
  • 2017-08-05
  • 2014-05-16
相关资源
最近更新 更多