2017-01-12 7 views
0

랩톱에 로컬 클러스터를 구축했습니다 (의사 모드). 내가로컬 클러스터 에서처럼 EMR에서 작업을 실행할 수 있습니까

hadoop-streaming -D mapred.output.compress=true \ 
    -D mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \ 
    -files my_mapper.py,my_reducer.py \ 
    -mapper my_mapper.py \ 
    -reducer my_reducer.py \ 
    -input /aws/input/input_warc.txt \ 
    -output /aws/output 

같은 다른 맵리 듀스 명령을 실행할 경우 지금은 EMR에서 실행해야합니다. 하나는 콘솔이고 두 번째는 aws cli입니다. 위와 같이 정확하게 실행하고 싶습니다. 이를 위해 EMR 마스터에게 ssh를 보내면이 명령을 실행할 수 있어야한다고 생각합니다. 그것은 올바른 방법입니까 아니면이 승인의 결점이 있습니까?

답변

1

예, 클러스터에서 SSH를 실행하여 작업을 실행할 수 있지만, 단계 API (http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-steps.html)를 사용하면 마스터 인스턴스에서 임의의 명령을 실행할 수 있습니다. AWS CLI ("aws emr add-step ..."또는 "aws emr create-cluster ... --steps ..."를 사용하여 클러스터를 만드는 동안 또는 AWS를 사용하여 유사하게 클러스터에 단계를 추가 할 수 있습니다 SDK (AWS Java SDK와 같은) 또는 AWS EMR Console 사용.

스텝 API의 몇 가지 장점은 각 단계의 출력을 캡처하여 AWS CLI, SDK 또는 AWS Console을 통해 볼 수 있으며 단계의 상태를 확인하여 언제 가지고 있는지 확인할 수 있습니다. 완료되었습니다.

단계 API의 한 가지 단점은 현재 단계가 모두 순차적으로 실행되므로 여러 단계가 병렬로 실행될 수 없다는 것입니다.