Подтвердить что ты не робот

Spark submit добавить несколько банок в classpath

Я пытаюсь запустить искровую программу, где у меня есть несколько файлов jar, если у меня есть только одна банка, которую я не могу запустить. Я хочу добавить оба файла jar, которые находятся в одном месте. Я попробовал ниже, но он показывает ошибку зависимости

spark-submit \
  --class "max" maxjar.jar Book1.csv test \
  --driver-class-path /usr/lib/spark/assembly/lib/hive-common-0.13.1-cdh​5.3.0.jar

Как я могу добавить еще один файл jar, который находится в том же каталоге?

Я хочу добавить /usr/lib/spark/assembly/lib/hive-serde.jar.

4b9b3361

Ответ 1

Я пытался подключиться к mysql из кода python, который был выполнен с помощью spark-submit.

Я использовал песочницу HDP, которая использовала Ambari. Пробовал множество опций, таких как --jars, --driver-class-path и т.д., Но никто не работал.

Решение

Скопируйте банку в /usr/local/miniconda/lib/python2.7/site-packages/pyspark/jars/

На данный момент я не уверен, что это решение или быстрый взлом, но так как я работаю над POC, поэтому для меня это работает.

Ответ 2

Просто используйте параметр --jars. Spark будет делиться этими банками (разделенными запятыми) с исполнителями.

Ответ 3

Задает полный путь для всех дополнительных банок.

./bin/spark-submit --class "SparkTest" --master local[*] --jars /fullpath/first.jar,/fullpath/second.jar /fullpath/your-program.jar

Или добавьте банки в conf/spark-defaults.conf, добавив такие строки, как:

spark.driver.extraClassPath /fullpath/firs.jar:/fullpath/second.jar
spark.executor.extraClassPath /fullpath/firs.jar:/fullpath/second.jar

Ответ 4

Вы можете использовать * для импорта всех баннеров в папку при добавлении в conf/spark-defaults.conf.

spark.driver.extraClassPath /fullpath/*
spark.executor.extraClassPath /fullpath/*

Ответ 5

В Spark 2.3 вам нужно просто установить параметр --jars. Путь к файлу должен быть добавлен к схеме, хотя, например, file:///<absolute path to the jars> Например: file:////home/hadoop/spark/externaljsrs/* или file:////home/hadoop/spark/externaljars/abc.jar,file:////home/hadoop/spark/externaljars/def.jar

Ответ 6

Для опции --driver-class-path вы можете использовать : в качестве разделителя для пропускания нескольких банок. Ниже приведен пример с командой spark-shell, но я думаю, что то же самое должно работать и с spark-submit

    spark-shell --driver-class-path /path/to/example.jar:/path/to/another.jar

Spark версия: 2.2.0

Ответ 7

Вы можете использовать --jars $ (echo/Path/To/Your/Jars/*.jar | tr '' ','), чтобы включить всю папку Jars. Так, spark-submit - класс com.yourClass \            --jars $ (echo/Path/To/Your/Jars/*.jar | tr '' ',') \            ...

Ответ 8

Для меня опция --jars всегда работает, но она слишком многословна. Чтобы сохранить некоторую типизацию, вы можете поместить все банки в каталог, скажем "myJars", а затем использовать эту команду для отправки:

spark-submit --master local[*] --jars "/path/to/myJars/*.jar"    --class <ClassName> <application_jar_name>.jar arg1 arg2