繁体   English   中英

Spark-Submit: - package vs --jars

[英]Spark-Submit: --packages vs --jars

有人能解释一下spark-submit脚本中--packages--jars之间的区别吗?

nohup ./bin/spark-submit   --jars ./xxx/extrajars/stanford-corenlp-3.8.0.jar,./xxx/extrajars/stanford-parser-3.8.0.jar \
--packages datastax:spark-cassandra-connector_2.11:2.0.7 \
--class xxx.mlserver.Application \
--conf spark.cassandra.connection.host=192.168.0.33 \
--conf spark.cores.max=4 \
--master spark://192.168.0.141:7077  ./xxx/xxxanalysis-mlserver-0.1.0.jar   1000  > ./logs/nohup.out &

另外,如果依赖项在我的应用程序pom.xml是否需要--packages配置? (我问,因为我只是通过更改--packages的版本而忘记在pom.xml更改它来炸毁我的应用程序)

我目前使用的是--jars因为罐子很大(超过100GB),因此减慢了阴影罐子的编译速度。 我承认我不知道为什么我使用--packages ,因为我遵循datastax文档

如果你做spark-submit --help它会显示:

--jars JARS                 Comma-separated list of jars to include on the driver
                              and executor classpaths.

--packages                  Comma-separated list of maven coordinates of jars to include
                              on the driver and executor classpaths. Will search the local
                              maven repo, then maven central and any additional remote
                              repositories given by --repositories. The format for the
                              coordinates should be groupId:artifactId:version.

如果是--jars

然后spark没有命中maven但它会在本地文件系统中搜索指定的jar它还支持以下URL方案hdfs / http / https / ftp。

所以如果是--packages

然后spark将搜索本地maven repo中的特定包,然后搜索中央maven repo或--repositories提供的任何repo,然后下载它。

现在回到你的问题:

另外,如果依赖项在我的应用程序pom.xml中,是否需要 - packages配置?

Ans :不,如果您没有直接在jar中导入/使用类,但需要通过某些类加载器或服务加载器(例如JDBC驱动程序)加载类。 是的,否则。

顺便说一句,如果你在你的pom.xml中使用特定jar的特定版本那么为什么你不在你的应用程序中制作uber / fat jar或在-jars参数中提供依赖jar? 而不是使用--packages

链接参考:

激发高级依赖管理

附加罐子到一个火花在职火花提交

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM