#scala #amazon-web-services #apache-spark #amazon-emr #spark-submit
#scala #amazon-веб-сервисы #apache-spark #amazon-emr #искровая отправка
Вопрос:
Итак, я пытаюсь запустить Apache Spark
приложение на AWS EMR в cluster
режиме using spark-submit
. Если у меня есть только один jar для указания в пути к классу, он отлично работает с заданной опцией, используя параметры --jar
и --driver-class-path
. Все мои необходимые банки зависимостей расположены в S3
корзине, как того требует EMR. Для этой цели я использую приведенную ниже команду в EMR add step option на консоли EMR AWS:
--class org.springframework.boot.loader.JarLauncher --jars s3://emrb/gson-2.8.4.jar --driver-class-path s3://emrb/gson-2.8.4.jar
Теперь я предоставляю эту опцию в spark-submit options
разделе в разделе add step
. Но если я хочу предоставить несколько зависимых банок одним и тем же способом, это не займет другие банки. Я предоставляю следующий способ и пробовал различные варианты, но он не может найти зависимые банки:
--jars s3://emrb/hadoop_jars/emrfs-hadoop-assembly-2.32.0.jar,s3://emrb/gson-2.8.4.jar --driver-class-path s3://emrb/hadoop_jars/emrfs-hadoop-assembly-2.32.0.jar,s3://emrb/gson-2.8.4.jar --class org.springframework.boot.loader.JarLauncher
Ответ №1:
Вы можете добавить файлы jar в spark-defaults . Если в списке jar более одной записи, используйте : в качестве разделителя.
вы должны использовать:
—driver-class-path s3://emrb/hadoop_jars/emrfs-hadoop-assembly-2.32.0.jar:s3://emrb/gson-2.8.4.jar
Комментарии:
1. Вы пробовали это? Потому
:
что здесь обычно используется разделитель, который входит в путь к классу s3 / Следовательно, он не может принимать несколько записей таким образом.