2014-06-14 4 views
14

Amazon EMR Documentation to add steps to cluster은 단일 Elastic MapReduce 단계가 Hadoop에 여러 작업을 제출할 수 있다고 말합니다. 그러나 Amazon EMR Documentation for Step configuration은 하나의 단계가 hadoop-streaming.jar를 한 번만 실행할 수 있다는 것을 나타냅니다 (즉, HadoopJarStep은 HadoopJarStepConfigs의 배열이 아니라 HadoopJarStepConfig 임).Elastic MapReduce API를 사용하여 단계에서 Hadoop에 둘 이상의 작업을 어떻게 제출합니까?

단계에서 여러 작업을 Hadoop에 제출하기위한 올바른 구문은 무엇입니까? Amazon EMR Documentation처럼

+0

당신은 당신이 직업을 제출하려는 API (언어)를 지정할 수 있습니다. 어떤 언어로 클러스터에서 EMR 작업을 제출하도록 코드를 작성하고 싶습니까? – hayat

+0

EMR에서 읽은 작업 흐름을 설명하는 JSON 개체가 있습니다. 따라서 원래 작업 흐름을 설명하는 데 사용되는 언어는 중요하지 않습니다. 예를 들어 AWS CLI를 통해 JSON으로 변환됩니다. . 사실이 스펙이 Hadoop에 여러 작업을 한 단계로 제출하는 것을 명시 적으로 고려하지는 않지만 script_runner.jar을 사용하여 수행 할 수 있습니다. http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr -hadoop-script.html. 더 깊이 탐구하는 사람은 답을 쓸 수 있습니다. 나는 좋은 것을 받아 들일 것이다. – verve

+0

해결 방법을 찾았습니까? AWS SDK를 사용하여이 작업을 수행하는 방법을 계속 찾고 있습니다. Javascript API를 사용하고 있습니다. – nishant

답변

3

당신이 단계에서 마스터 인스턴스에 대한 몇 가지 스크립트 my_script.sh를 실행하는 클러스터를 만들 수 있습니다 말한다 :

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

my_script.sh 이런 식으로 뭔가 보일 것입니다 :

#!/usr/bin/env bash 

hadoop jar my_first_step.jar [mainClass] args... & 
hadoop jar my_second_step.jar [mainClass] args... & 
. 
. 
. 
wait 

이 방법을, 여러 작업이 동일한 단계에서 Hadoop에 제출됩니다.하지만 불행히도 EMR 인터페이스는이를 추적 할 수 없습니다. 이렇게하려면 그림과 같이 Hadoop 웹 인터페이스 (here) 또는 간단히 ssh을 마스터 인스턴스에 사용하고 mapred job으로 탐색해야합니다.

+0

클러스터에 로깅하고 두 개의 hadoop 작업 (단계가 아니라 명령 "hadoop jar ...")을 실행하는 것과 같습니다. 여기에 있습니다 또한, EMR 클러스터에서 일어나는 일은 두 작업 중 하나가 진행되고 다른 작업은 진행 0 %에서 대기합니다. – Karshit

+1

@Karshit 공정한 스케줄러를 사용하여 실행중인 작업에 리소스를 고르게 배포하는 데 적합합니다. http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/FairScheduler.html. 이를 위해서는 http://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/emr-configure-apps.html의 문서에서 제공하는 yarn-site.xml을 편집해야합니다. – verve

+0

나는 이것을 시도하고 알릴 것이다. – Karshit