Я использую Spark 2.1 (BTW) в кластере YARN.
Я пытаюсь загрузить JAR в кластер YARN и использовать их для замены на месте (всегда на месте) Spark JAR.
Я пытаюсь сделать это через искру-отправку.
Вопрос Добавить банки в задание Spark - spark-submit - и соответствующие ответы - полны интересных моментов.
Один из полезных ответов следующий:
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
Итак, я понимаю следующее:
- --jars предназначен для загрузки jar на каждый узел
- --driver-class-path используется для использования загруженного jar-файла для драйвера.
- --conf spark.executor.extraClassPath предназначен для использования загруженного jar-файла для исполнителей.
Пока я осваиваю пути к файлам для --jars в команде spark-submit, какие пути к файлам загруженного JAR будут использоваться, например, в --driver-class-path?
В документе говорится: JAR и файлы копируются в рабочий каталог для каждого SparkContext на узлах исполнителя
Хорошо, но что я должен поставить вместо XXX и YYY для следующей команды?
spark-submit --jars /a/b/some1.jar,/a/b/c/some2.jar \
--driver-class-path XXX:YYY \
--conf spark.executor.extraClassPath=XXX:YYY \
--class MyClass main-application.jar
При использовании spark-submit, как я могу ссылаться на рабочий каталог для SparkContext, чтобы сформировать путь к файлу XXX и YYY?
Спасибо.
PS: я пробовал
spark-submit --jars /a/b/some1.jar,/a/b/c/some2.jar \
--driver-class-path some1.jar:some2.jar \
--conf spark.executor.extraClassPath=some1.jar:some2.jar \
--class MyClass main-application.jar
Безуспешно (если я не ошибся)
И я также пробовал:
spark-submit --jars /a/b/some1.jar,/a/b/c/some2.jar \
--driver-class-path ./some1.jar:./some2.jar \
--conf spark.executor.extraClassPath=./some1.jar:./some2.jar \
--class MyClass main-application.jar
И безуспешно.