Добавить баночки в Spark Job - spark-submit

Правда ... это обсуждалось довольно много.

Тем не менее, существует много двусмысленности и некоторые ответы, включая дублирование ссылок на jar в конфигурации или опциях jars / executor / driver.

Неоднозначные и / или пропущенные детали

После неоднозначности неясные и / или пропущенные детали должны быть уточнены для каждого варианта:

  • Как влияет ClassPath
    • Драйвер
    • Исполнитель (для запущенных задач)
    • Оба
    • вовсе нет
  • Символ разделения: запятая, двоеточие, точка с запятой
  • Если предоставленные файлы автоматически распространяются
    • для задач (каждому исполнителю)
    • для удаленного драйвера (если выполняется в режиме кластера)
  • Тип принятого URI: локальный файл, hdfs, http и т. Д.
  • Если скопировано в общее местоположение, где это местоположение (hdfs, local?)

Варианты, на которые он влияет:

  1. --jars
  2. SparkContext.addJar(...) метод
  3. ] SparkContext.addFile(...) метод
  4. --conf spark.driver.extraClassPath=... или --driver-class-path ...
  5. --conf spark.driver.extraLibraryPath=... или --driver-library-path ...
  6. --conf spark.executor.extraClassPath=...
  7. --conf spark.executor.extraLibraryPath=...
  8. не забывать, последний параметр искры -submit также является файлом .jar.

Мне известно, где можно найти документацию по основной искре и, в частности, информацию о , как отправить , доступные опции , а также JavaDoc . Однако это оставило для меня еще несколько пробелов, хотя и частично ответило.

Я надеюсь, что это не так уж и сложно, и что кто-то может дать мне четкий и краткий ответ.

Если судить по документации, кажется, что методы --jars, а также методы SparkContext, addJar и addFile будут автоматически распространять файлы, тогда как другие опции просто изменяют ClassPath.

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

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

Нашел хорошую статью в , ответ на другая публикация . Однако ничего нового не узнал. Постер хорошо отмечает разницу между локальным драйвером (клиент-пряжа) и удаленным драйвером (кластер пряжи). Определенно важно помнить.

138
задан KARTHIKEYAN.A 1 January 2018 в 05:59
поделиться