shell - 如何在 spark-submit 中设置 -javaagent
问题描述
我在 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。
解决方案
我得到了答案,我不得不使用“--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"
推荐阅读
- flutter - Flutter 中的 Scaffold 和 Container 有什么区别?
- github - Git检测到大文件后推入新存储库
- vue.js - 从 api 获取 Vue 变量后未设置它们
- mongodb - windows下aws中连接EC2中的mongodb服务,可以连接,但是在Linux下无法连接成功
- amazon-s3 - Strapi - 媒体文件 URL 未显示在数据库中
- java - 为什么在启动 REST 服务时添加注解 FormDataParam 会引发异常?
- r - 令牌问题 httr salesforce API
- python - NameError:名称“统一”未定义
- python - CTC:空白必须在标签范围内
- php - 拉拉维尔 | 三个表之间的多对多关系 - 保存两个数组中的数据