我已经使用面向方面的编程在Java Maven项目中进行日志记录。
通过Eclipse运行它时,我必须在vmargs中初始化javaagent,如下所示:
-javaagent:lib/aspectjweaver-1.9.1.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并进行设置。但是这些都不起作用。从最近三天开始挣扎。
我在stackoverflow上检查了几个类似的问题,但是没有一个对设置javaagent有帮助。帮助。
谢谢。
编辑:
我正在检查是否使用以下代码在代码中初始化了javaagent:
try {
org.aspectj.weaver.loadtime.Agent.getInstrumentation();
} catch (NoClassDefFoundError | UnsupportedOperationException e) {
System.out.println(e);
}
我收到了NoClassDefFoundError。得出未设置javaagent的结论。
答案 0 :(得分: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"