Отправка работы Spark в Amazon EMR - PullRequest
0 голосов
/ 01 ноября 2018

Я собираюсь попробовать EMR и впредь изучать документацию прямо сейчас. Я немного смущен процессом отправки.

1) Где искры Библиотеки

Из документации Spark мы находим:

- spark.yarn.jars: Список библиотек, содержащих код Spark для распространения в контейнерах YARN. По умолчанию Spark на YARN будет использовать локальные jar-файлы Spark, но jar-файлы Spark также могут находиться в общедоступном месте на HDFS. Это позволяет YARN кэшировать его на узлах, чтобы его не нужно было распределять при каждом запуске приложения. Например, чтобы указать jar-файлы в HDFS, установите для этой конфигурации значение hdfs: /// some / path. Разрешены шарики.

  • (а) Интересно, как это устанавливается с помощью EMR, то есть настраивается ли оно с помощью EMR, или я должен сам это настроить?

2) Как работает параметр --master?

Из документации по искрам имеем:

- --master : В отличие от других диспетчеров кластеров, поддерживаемых Spark, в которых адрес мастера указывается в параметре --master, в режиме YARN адрес ResourceManager выбирается из конфигурации Hadoop. Таким образом, параметр --master - это пряжа.

  • (a) Это установлено EMR напрямую?

3) Есть ли способ подать заявку из терминала или это единственный способ фактически развернуть jar на S3? Могу ли я войти в мастер и выполнить оттуда отправку? Будут ли готовы все переменные Env, необходимые для отправки сценария (см. Предыдущий вопрос)? Какой самый эффективный способ сделать это?

1 Ответ

0 голосов
/ 01 ноября 2018
  1. Где находятся искровые библиотеки? spark доступно в пути, это означает, что вы можете запустить spark-submit из интерфейса командной строки в любом месте на главном узле, однако, если вы хотите настроить файлы конфигурации spark, они расположены под /etc/spark/conf/ на всех узлах .

  2. Как подать заявку в Spark? Есть два способа

    • a) CLI on the master node: выпуск spark-submit со всеми параметрами, например: spark-submit --class com.some.core.Main --deploy-mode cluster --master yarn --jars s3://path_to_some_jar.jar

    • b) AWS EMR Web console: Отправка приложения spark из веб-консоли EMR означает отправку шага EMR, шаг EMR - это, по сути, версия пользовательского интерфейса spark submit, дополнительная информация здесь

  3. Как работает параметр --master, настроен ли он EMR напрямую? Это устанавливается автоматически, если вы используете шаг AWS EMR (т. Е. Через веб-консоль), пользовательский интерфейс автоматически добавит его для вас, но если вы используете CLI в качестве вопроса 2a, то вам нужно упомянуть об этом конкретно.

4) Является ли единственный способ фактически развернуть банку на S3? Есть два (или более) способа

  • a) Опубликуйте jar (файл сборки) в s3 и укажите его при отправке.
  • b) Скопируйте банку в мастер с SCP и укажите ее при отправке.

5) Будут ли готовы все переменные Env, необходимые для отправки сценария?

  • Да, для всех переменных env, связанных с искрой / пряжей, если вы добавляете приложение spark в EMR, это полностью настроенный готовый к использованию spark кластер.
  • Нет, для всех ваших пользовательских переменных env одним из способов достижения этого является использование AWS EMR bootstrap action для выполнения скрипта, что можно сделать только при создании кластера, дополнительная информация здесь

6) Какой самый эффективный способ сделать это? Это зависит от варианта использования. Если вы можете / хотите управлять работой самостоятельно, просто выполните spark-submit, но чтобы получить преимущества журнала автоматической отладки AWS EMR, тогда AWS EMR step - это путь.

Обновление:

7) Как изменить конфигурацию пряжи, свечи и т. Д.? Опять есть два варианта

  • CLI: файлы конфигурации Hadoop расположены в /etc/hadoop/conf, измените их на главном узле, возможно, вам придется перезапустить менеджер пряжи на главном узле.
  • AWS Web Console: вы можете отправить конфигурацию в веб-консоли, как указано здесь при создании кластера, например, если вы хотите включить планирование YARN FAIR, в конфигурацию JSON необходимо предоставить будет выглядеть

    { 'classification': 'yarn-site', 'Properties': { 'yarn.resourcemanager.scheduler.class':'org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler' } }

PS: я забыл упомянуть, что почти все, что вы можете сделать в веб-консоли AWS, вы можете сделать то же самое программно с помощью AWS CLI или AWS SDK.

...