首页 >Java >java教程 >如何使用spark-submit将JAR文件添加到Spark作业?

如何使用spark-submit将JAR文件添加到Spark作业?

Patricia Arquette
Patricia Arquette原创
2024-11-15 00:25:02982浏览

How to Add JAR Files to Spark Jobs with spark-submit?

使用 Spark-submit 将 JAR 文件添加到 Spark 作业

不明确的详细信息

以下详细信息之前不清楚或省略在Documentation:

  • ClassPath: --driver-class-path 和 --conf spark.driver.extraClassPath 影响驱动程序类路径,而 --conf spark.executor.extraClassPath 影响Executor 类路径。
  • 分隔符: Linux 使用冒号 (:),而 Windows使用分号 (;)。
  • 分发:

    • 客户端模式:JAR 由 Driver 节点上的服务器通过 HTTP 分发。
    • 集群模式:必须通过 HDFS 手动将 JAR 提供给工作节点类似。
  • URI:“file:/”方案由 Driver HTTP 服务器提供,而“hdfs”、“http”、“ftp”则拉取文件直接来自 URI。 "local:/" 假设文件已经在每个 Worker 节点上。
  • 文件位置: JAR 被复制到每个 Worker 节点上的工作目录(通常为 /var/run/spark/work ).

受影响选项

优先级从高到低的选项:

  1. 直接在代码中设置的SparkConf属性
  2. 传递给spark-submit的标志
  3. 选项中Spark-defaults.conf

选项分析

  • --jars vs SparkContext.addJar: 这些相当于添加JAR 依赖项。
  • SparkContext.addJar 与SparkContext.addFile: addJar 用于依赖项,addFile 用于任意文件。
  • DriverClassPath 选项: --driver-class-path 和 --conf spark.driver.extraClassPath 是别名。
  • DriverLibraryPath 选项: --driver-library-path 和 --conf Spark.driver.extraLibraryPath 是别名,代表 java.library.path。
  • Executor ClassPath: --conf Spark.executor.extraClassPath 依赖项。
  • 执行器库路径: --conf Spark.executor.extraLibraryPath for JVM 库

添加 JAR 文件的安全实践

为了在客户端模式下简单起见,可以安全地同时使用所有三个主要选项:

spark-submit --jars additional1.jar,additional2.jar \
  --driver-class-path additional1.jar:additional2.jar \
  --conf spark.executor.extraClassPath=additional1.jar:additional2.jar \
  --class MyClass main-application.jar

在集群模式下,需要通过 HDFS 手动将外部 JAR 添加到 Worker 节点。

以上是如何使用spark-submit将JAR文件添加到Spark作业?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn