如何在spark-submit中设置-javaagent

时间:2018-10-03 10:12:23

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

我已经使用面向方面的编程在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的结论。

1 个答案:

答案 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"