AWS EMR Spark: ошибка: не удается загрузить основной класс из JAR

Я пытаюсь отправить искровое задание в кластер AWS EMR с помощью консоли AWS. Но это не удается:

Cannot load main class from JAR. Задание выполняется успешно, когда я указываю основной класс как --class в опции Arguments в Консоль AWS EMR-> Добавить шаг.

На локальном компьютере задание работает отлично, если не указан основной класс, как показано ниже:

 ./spark-submit /home/astro/spark-programs/SpotEMR/MyJob.jar

Я установил для основного класса jar, используя конфигурацию запуска. Основная причина, по которой не следует передавать основной класс как --class, заключается в том, что я должен запустить это задание в AWS Datapipeline, используя EMRActivity. В AWS Datapipeline в настоящее время нет возможности указать основной класс для отправляемого задания.

Любая помощь будет оценена по достоинству.


person Atish    schedule 23.01.2018    source источник
comment
@Frederic: У вас есть документ, подтверждающий это?   -  person Atish    schedule 24.01.2018
comment
пожалуйста, посмотрите мой ответ ниже   -  person Frederic    schedule 24.01.2018


Ответы (1)


Фактически, вы можете передать основной класс задания с помощью EMRActivity и AWS Datapipeline.

См. https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-emractivity.html, чтобы запустить EMRActivity с использованием step.

а также https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-submit-step.html, чтобы отправить искровое задание с использованием EMR step с основным классом.

Шаг будет выглядеть следующим образом:

command-runner.jar,spark-submit,--class,org.apache.spark.examples.SparkPi
person Frederic    schedule 24.01.2018
comment
Если это ответило на ваш вопрос, примите ответ. - person Frederic; 25.01.2018
comment
Я пробовал, как вы здесь упомянули. Его все еще не удается. Проверим журналы на предмет возможной причины - person Atish; 25.01.2018
comment
AMI не требуется. Работает с текущей версией EMR. - person Frederic; 25.01.2018
comment
Когда я пытаюсь это сделать, получается, что EmrCluster поддерживается только для AmiVersion 2.4.8 и выше для hadoop 1 и AmiVersion 3.1.1 и выше для hadoop 2. Вы используете AmiVersion 2.3.0 'Когда я пытался запустить его в версии 4.3 и 5.11, переходит в состояние отмены без ошибок - person Atish; 25.01.2018
comment
у вас есть какой-либо документ, который объясняет шаги, необходимые для запуска задания emr на amazon datapipeline? - person Atish; 25.01.2018
comment
github.com/ata-labs pipeline-samples / blob / master / samples / или используйте сборку с использованием шаблона - person Frederic; 25.01.2018