我的spark应用程序依赖于adam_2.11-0.20.0.jar,每次我都必须将我的应用程序与adam_2.11-0.20.0.jar打包为fat jar以提交到spark。
例如我的fat jar是myApp1-adam_2.11-0.20.0.jar,
按如下方式提交就可以了
spark-submit --class com.ano.adam.AnnoSp myApp1-adam_2.11-0.20.0.jar
它报告了异常
线程“main”java.lang.NoClassDefFoundError:
org/bdgenomics/adam/rdd 使用 --jars
spark-submit --class com.ano.adam.AnnoSp myApp1.jar --jars adam_2.11-0.20.0.jar
我的问题是如何使用 2 个单独的 jar 来提交而不将它们打包在一起
spark-submit --class com.ano.adam.AnnoSp myApp1.jar adam_2.11-0.20.0.jar
将所有罐子添加到一个文件夹中,然后执行如下操作......
选项1 :
我认为更好的方法是
$SPARK_HOME/bin/spark-submit \
--driver-class-path $(echo /usr/local/share/build/libs/*.jar | tr ' ' ',') \
--jars $(echo /usr/local/share/build/libs/*.jar | tr ' ' ',')
在这种方法中,您不会在类路径中错误地错过任何 jar,因此不会出现警告。
选项2见我的回答:
Spark-submit-jars-arguments-want-comma-list-如何声明目录
选项 3:如果您想通过 API 添加 jar 来进行编程提交,这是可能的。这里我不会详细介绍它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)