복붙노트

[HADOOP] 창문에서 아마존의 탄력적 인 mapreduce (emr) 클러스터에서 mapreduce 작업을 수행하는 방법?

HADOOP

창문에서 아마존의 탄력적 인 mapreduce (emr) 클러스터에서 mapreduce 작업을 수행하는 방법?

아마존의 EMR에서 Java Map / Reduce (M / R) 작업을 실행하는 법을 배우려고합니다. 내가 따르고있는 문서는 http://aws.amazon.com/articles/3938입니다. 나는 창 7 컴퓨터에있다.

이 명령을 실행하려고하면 도움말 정보가 표시됩니다.

./elasticmapreduce-client.rb RunJobFlow streaming_jobflow.json 

물론, 나는 윈도우 머신에 있기 때문에 실제로이 명령을 입력한다. 이유는 모르겠지만이 특정 명령에는 Windows 버전이 없습니다 (모든 명령은 쌍으로 표시되며, 하나는 * nix 용이고 다른 하나는 Windows 용).

 ruby elastic-mapreduce RunJobFlow my_job.json

내 질문은 우리가 윈도우에서 명령 행 인터페이스 (윈도우즈)를 사용하여 아마존의 EMR로 작업을 제출 / 실행하는 방법이다. 나는 온라인 검색을 시도했지만, 나는 야생 장소로 이동합니다. 어떤 도움을 주셔서 감사합니다.

감사.

해결법

  1. ==============================

    1.흠. RunJobFlow 예제가 얼마나 오래되었는지 나는 개인적으로 무시할 것입니다.

    흠. RunJobFlow 예제가 얼마나 오래되었는지 나는 개인적으로 무시할 것입니다.

    너 도망 갈 수 있니?

    localhost$ elastic-mapreduce --describe
    

    일단 당신이 할 수있는 당신은 당신이 할 필요가 정확한 단계를 흔들어 클러스터에서 직접 재생해야합니다 ... 그것은 당신이 클러스터를 시작 / 정지 bazillion 번 그렇게하지 않아도됩니다.

    localhost$ elastic-mapreduce --create --alive --num-instances 1
    localhost$ elastic-mapreduce -j j-YOUR_ID_HERE --ssh
    
    cluster$ hadoop jar my.jar -D some=1 -D args=1 blah blah
    cluster$ hadoop jar some_other_jar.jar -D foo -D bar
    cluster$ ^D
    
    localhost$ elastic-mapreduce -j j-YOUR_ID_HERE --terminate
    

    그런 다음 단계가 만족 스러울 때 헤드 롤을 실행해야 할 필요가있을 때 (예 : cron에서) EMR이 단계를 조정할 수 있습니다 (클러스터 자체 종료)

    localhost$ elastic-mapreduce --create --num-instances 1
    localhost$ elastic-mapreduce --jar my_jar.jar --args "-D,some=1,-D,args=1,blah,blah"
    localhost$ elastic-mapreduce --jar some_other_jar.jar --args "-D,foo,-D,bar"
    

    더 복잡한 단계가 필요하다면 --json 항목 만 탐색 할 수 있습니다. 처음에는 제대로 이해하기 어렵습니다.

  2. ==============================

    2.EMR에서 스트리밍 작업을 실행하려면 먼저 다음과 같은 명령으로 클러스터를 만들어야합니다.

    EMR에서 스트리밍 작업을 실행하려면 먼저 다음과 같은 명령으로 클러스터를 만들어야합니다.

    ruby elastic-mapreduce --create --alive --plain-output --master-instance-type m1.xlarge 
    --slave-instance-type m1.xlarge --num-instances 6  --name "Some Job Cluster" --bootstrap-action s3://<path-to-a-bootstrap-script> 
    

    그러면 jobid가 반환 될 것입니다. j-ABCD7EF763

    이제 다음 명령을 사용하여 작업 단계를 제출할 수 있습니다.

    ruby elastic-mapreduce -j j-ABCD7EF763 --stream --step-name "my step name" --mapper
    s3://<some-path>/mapper-script.rb --reducer s3://<some=path>/reducer-script.rb --input 
    s3://<input-path> --output s3://<output-path> 
    

    스트리밍 작업을 실행하는 대신 작업을 직접 실행할 수도 있습니다.이 경우 작업이 끝나면 클러스터가 종료됩니다.

  3. ==============================

    3.--json 옵션을 사용해보십시오.

    --json 옵션을 사용해보십시오.

    예 : ./elastic-mapreduce --create --name 다중 단계 --json wordcount_jobflow.json

    단계만으로 json 파일을 다듬어야합니다 ([] 바깥의 모든 것을 제거하십시오). 그것에 대해 논의하는 스레드가 있습니다 : https://forums.aws.amazon.com/thread.jspa?threadID=35093

  4. from https://stackoverflow.com/questions/9621579/how-to-run-a-mapreduce-job-on-amazons-elastic-mapreduce-emr-cluster-from-wind by cc-by-sa and MIT license