Создание кластера EMR AWS Data Pipeline с использованием ShellCommandActivity - PullRequest
0 голосов
/ 15 мая 2018

Когда я создаю AWS EMR , я могу сделать это с помощью их простого мастера на AWS Management Console . После его завершения я могу проверить его, и когда я доволен его конфигурацией, я могу просто нажать кнопку экспорта CLI AWS и скопировать команду CLI , которая создает EMR.

Мне нужно создать EMR как часть моего AWS Data Pipeline , а не настраивать EmrCluser и затем запускать все, что EmrActivity Я хочу, чтобы я ' Мне интересно, могу ли я просто скопировать свою команду CLI, которую я экспортировал во время тестирования, и вставить ее в ShellCommandActivity , которая создаст EMR. Оттуда я мог бы использовать либо EmrActivity для выполнения некоторой обработки, либо просто использовать ShellCommandActivity для выполнения обработки.

Могу ли я создать свой кластер EMR AWS Data Pipeline с помощью команды CLI, которая запускается через ShellCommandActivity? И если я сделаю это, смогу ли я запустить EmrActivity против этого кластера EMR? Я просто думаю, что было бы проще создать EMR таким образом, потому что я могу использовать Консоль управления AWS для создания своей EMR, а затем я могу проверить свою EMR перед экспортом команды CLI, вместо того, чтобы проходить процесс правильного построения EMR через Мастер конвейера данных AWS / процесс JSON. То есть, настоящий мастер EMR в консоли управления AWS гораздо проще, чем мастер конвейера данных, для создания EMR в консоли управления AWS, особенно когда речь идет о выборе моих групп безопасности и различных конфигураций.

Обновление:

Я только что проверил, что на самом деле могу запустить команду CLI через ShellCommandActivity, чтобы создать свою EMR через конвейер данных, но возможно, это запах кода или плохая практика? Есть ли какие-либо недостатки при создании и EMR в конвейере данных таким образом, вместо того, чтобы делать это с помощью предопределенной команды EmrCluster?

1 Ответ

0 голосов
/ 15 мая 2018

Это возможно, но немного сложнее:

  1. Следующее действие или сам скрипт должен будет ждать создания кластера.Убедитесь, что действие не истекло.
  2. Конвейер данных не знает о кластере, поэтому вам нужно указать workerGroup вместо runsOn в EMRActivity.Вам также необходимо установить Task Runner в кластере.
...