【问题标题】:What is the use of --driver-class-path in the spark command?spark命令中的--driver-class-path有什么用?
【发布时间】:2017-04-06 22:17:06
【问题描述】:

根据火花docs

要开始使用,您需要在 spark 类路径中包含特定数据库的 JDBC 驱动程序。例如,要从 Spark Shell 连接到 postgres,您需要运行以下命令:

bin/spark-shell --driver-class-path postgresql-9.4.1207.jar --jars postgresql-9.4.1207.jar

没有--driver-class-path,作业也能正常工作。那么,spark命令中--driver-class-path有什么用呢?

【问题讨论】:

  • --driver-class-path 标志是特定于驱动程序的,而--jars 标志将 JAR 分发并添加到驱动程序和执行程序的 CP。

标签: apache-spark


【解决方案1】:

--driver-class-pathspark.driver.extraClassPath 只能用于修改 Spark 驱动程序的类路径。这对于执行器不需要的库(例如仅在本地使用的任何代码)很有用。

与此相比,--jarsspark.jars 不仅会在驱动程序和执行程序类路径中添加 jar,还会在集群上分发档案。如果特定 jar 仅由驱动程序使用,则这是不必要的开销。

【讨论】:

  • 你知道 --packages 是把 jars 提供给 executors 和 driver,还是只提供给 executors?
  • @ashic 应该同时提供,但不一定要修改类路径。
  • 如果我理解得很好 --jars 是 --driver-class-path 的超集,但在我的 spark 2.4.3 上,如果我只使用 --jars 我会得到 No suitable driver 异常.如果我同时使用 --jars 和 --driver-class-path 都运行良好。
  • 感谢您的解释。请问CLI --jars 的 SparkConf() 等价物是什么?你能提供一个链接吗?谢谢!
猜你喜欢
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 1970-01-01
  • 2020-07-16
相关资源
最近更新 更多