【问题标题】:Spark.jars not adding jars to classpathSpark.jars 未将 jars 添加到类路径
【发布时间】:2018-03-21 04:36:43
【问题描述】:

我正在尝试使用“spark.jars”属性将我的自定义 jar 添加到 spark 作业中。 虽然我可以阅读添加 jar 的日志中的信息,但是当我检查添加到类路径中的 jar 时,我没有找到它。以下是我也尝试过的功能。

1)spark.jars

2)spark.driver.extraLibraryPath

3)spark.executor.extraLibraryPath

4)setJars(Seq[String])

但没有人添加 jar。我在 HDP 中使用 spark 2.2.0,文件保存在本地。 请让我知道我可能做错了什么。

第一个选项对我有用。Spark.jars 正在添加 jar,因为它在 Spark UI 中显示。

【问题讨论】:

标签: hadoop apache-spark apache-spark-sql spark-streaming


【解决方案1】:

检查documentation for submitting jobs,在底部添加额外的非运行时jar

您可以将 jars 添加到 spark.jars 中的 SparkConf 或在运行时指定它们

./bin/spark-submit \
  --class <main-class> \
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --conf <key>=<value> \
  ... # other options
  <application-jar> \

所以试试 spark-submit --master yarn --jars the_jar_i_need.jar my_script.py

例如,我有一个需要 jar 的 pyspark 脚本 kafak_consumer.pyspark-streaming-kafka-0-8-assembly_2.11-2.1.1.jar

运行它的命令是

spark-submit --master yarn --jars spark-streaming-kafka-0-8-assembly_2.11-2.1.1.jar kafka_consumer.py

【讨论】:

  • 我要的是外部 jar,而不是应用 jar。
  • 试过了,但没有结果。
【解决方案2】:

如果您需要执行器可用的外部 jar,您可以尝试spark.executor.extraClassPath。根据文档,它不应该是必要的,但它在过去帮助了我

附加到执行器的类路径之前的类路径条目。这主要是为了向后兼容旧版本的 Spark。用户通常不需要设置此选项。

文档:https://spark.apache.org/docs/latest/configuration.html

【讨论】:

  • 早些时候尝试过,并且在我的问题中也提到了我已经尝试过的所有内容。
猜你喜欢
  • 2013-03-15
  • 2011-11-17
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
  • 2016-02-25
  • 2012-03-14
  • 2011-06-15
  • 1970-01-01
相关资源
最近更新 更多