Назад | Перейти на главную страницу

Выполнить сценарий оболочки как один из шагов в EMR AWS

Мы думаем о переносе нашей инфраструктуры Hadoop из центра обработки данных в AWS EMR. Поскольку некоторые задачи / этапы процесса ETL зависят, например, поток похож на

  1. Задание Map Reduce будет генерировать данные
  2. Сценарий оболочки переместит данные, созданные на шаге 1, в место вывода.

В EMR мы могли найти шаги для Custom Jar, Pig, Hive, но не нашли возможности выполнить сценарий оболочки. Есть несколько вариантов, чтобы преодолеть это,

Вместо того, чтобы изобретать колесо, если какой-либо другой вариант, доступный напрямую от EMR или AWS, удовлетворяет нашим требованиям, наши усилия будут сокращены.

Пожалуйста, перейдите по ссылке: http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hadoop-script.html

aws emr create-cluster --name "Test cluster" –-release-label  --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m3.xlarge --instance-count 3 --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://mybucket/script-path/my_script.sh"]

Для выполнения сценария оболочки по шагам мы все еще можем использовать command-runner.jar и передать абсолютный путь к сценарию следующим образом:

**JAR location** : command-runner.jar
**Arguments** : bash /home/hadoop/script_name.sh or bash /path_to_script/script_name.sh

{
  'Name': 'run_script',
  'ActionOnFailure': 'CANCEL_AND_WAIT',
  'HadoopJarStep': {
     'Jar': 'command-runner.jar',
     'Args': [
           "bash","/home/hadoop/script_name.sh"
     ]
}