【发布时间】: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