使用 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 ).
受影响选项
优先级从高到低的选项:
- 直接在代码中设置的SparkConf属性
- 传递给spark-submit的标志
- 选项中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中文网其他相关文章!