Шаг добавления AWS EMR: как добавить несколько банок из s3 в —jars и —параметры пути к классу драйвера?

#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 / Следовательно, он не может принимать несколько записей таким образом.