Мы думаем о переносе нашей инфраструктуры Hadoop из центра обработки данных в AWS EMR. Поскольку некоторые задачи / этапы процесса ETL зависят, например, поток похож на
В 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"
]
}