相关疑难解决方法(0)

将jar添加到Spark作业 - spark-submit

真的...已经讨论了很多.

然而,有很多歧义和一些答案提供...包括在jar/executor /驱动程序配置或选项中复制jar引用.

模糊和/或省略的细节

对于每个选项,应澄清含糊不清,不清楚和/或省略的细节:

  • ClassPath如何受到影响
    • 司机
    • 执行程序(用于运行的任务)
    • 一点也不
  • 分隔字符:逗号,冒号,分号
  • 如果提供的文件是自动分发的
    • 任务(每个执行者)
    • 用于远程驱动程序(如果以群集模式运行)
  • 接受的URI类型:本地文件,hdfs,http等
  • 如果复制公共位置,该位置是(hdfs,local?)

它影响的选项:

  1. --jars
  2. SparkContext.addJar(...) 方法
  3. SparkContext.addFile(...) 方法
  4. --conf spark.driver.extraClassPath=... 要么 --driver-class-path ...
  5. --conf spark.driver.extraLibraryPath=..., 要么 --driver-library-path ...
  6. --conf spark.executor.extraClassPath=...
  7. --conf spark.executor.extraLibraryPath=...
  8. 不要忘记,spark-submit的最后一个参数也是一个.jar文件.

我知道在哪里可以找到主要的spark文档,特别是关于如何提交,可用的选项以及JavaDoc.然而,这对我来说仍然有一些漏洞,尽管它也有部分回答.

我希望它不是那么复杂,有人可以给我一个清晰简洁的答案.

如果我从文档中猜测,似乎--jarsSparkContext 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
Run Code Online (Sandbox Code Playgroud)

找到一篇关于一篇文章答案的好文章.然而没有什么新学到的 海报确实很好地评论了本地驱动程序(纱线客户端)和远程驱动程序(纱线群集)之间的区别.记住这一点非常重要.

java scala jar apache-spark spark-submit

139
推荐指数
2
解决办法
9万
查看次数

标签 统计

apache-spark ×1

jar ×1

java ×1

scala ×1

spark-submit ×1