将jar添加到Spark作业 - spark-submit
真的...已经讨论了很多。
然而,有很多歧义和一些答案提供...包括在jar / executor /驱动程序配置或选项中复制jar引用。
对于每个选项,应澄清含糊不清,不清楚和/或省略的细节:
ClassPath如何受到影响
司机
执行程序(用于运行的任务)
都
一点也不
分隔字符:逗号,冒号,分号
如果提供的文件是自动分发的
任务(每个执行者)
用于远程驱动程序(如果以群集模式运行)
接受的URI类型:本地文件,hdfs,http等
如果复制到公共位置,该位置是(hdfs,local?)
--jars
--conf spark.driver.extraClassPath=...
要么 --driver-class-path ...
--conf spark.driver.extraLibraryPath=...
, 要么 --driver-library-path ...
--conf spark.executor.extraClassPath=...
--conf spark.executor.extraLibraryPath=...
不要忘记,spark-submit的最后一个参数也是一个.jar文件。
我知道在哪里可以找到主要的spark文档,特别是关于如何提交,可用的选项以及JavaDoc。然而,这对我来说仍然有一些漏洞,尽管它也有部分回答。
我希望它不是那么复杂,有人可以给我一个清晰简洁的答案。
如果我从文档中猜测,似乎--jars
和SparkContext
addJar
,addFile
方法是自动分发文件的方法,而其他选项只是修改ClassPath。
假设为简单起见,我可以安全地使用3个主要选项同时添加其他应用程序jar文件:
spark-submit --jar additional1.jar,additional2.jar \ --driver-library-path additional1.jar:additional2.jar \ --conf spark.executor.extraLibraryPath=additional1.jar:additional2.jar \ --class MyClass main-application.jar
找到一篇关于另一篇文章答案的好文章。然而没有什么新学到的 海报确实很好地评论了本地驱动程序(纱线客户端)和远程驱动程序(纱线群集)之间的区别。记住这一点非常重要。
慕村9548890
胡子哥哥
相关分类