복붙노트

[HADOOP] AWS EMR 4.0-셸 명령을 실행하기 위해 사용자 지정 JAR 단계를 추가하는 방법

HADOOP

AWS EMR 4.0-셸 명령을 실행하기 위해 사용자 지정 JAR 단계를 추가하는 방법

EMR 4.0.0에서 단계를 사용하여 쉘 명령을 실행하려고 하며이 링크를 참조로 사용했습니다-http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-hadoop-script.html

그러나 'JAR 위치'필드에 'command-runner.jar'을 넣을 위치를 알고 싶습니다 .http : //i.stack.imgur.com/CRicz.png

AWS s3에서 'command-runner.jar'을 유지하고 해당 위치에서로드하려고 시도했으며 'Arguments'에서 'example.sh'파일의 s3 위치를 지정했으며 단계를 추가 한 후이 예외가 발생하지 않았습니다.

Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Cannot run program "s3://<path>/example.sh" (in directory "."): error=2, No such file or directory
    at com.amazonaws.emr.command.runner.ProcessRunner.exec(ProcessRunner.java:139)
    at com.amazonaws.emr.command.runner.CommandRunner.main(CommandRunner.java:13)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.io.IOException: Cannot run program "s3://<path>/example.sh" (in directory "."): error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
    at com.amazonaws.emr.command.runner.ProcessRunner.exec(ProcessRunner.java:92)
    ... 7 more
Caused by: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:187)
    at java.lang.ProcessImpl.start(ProcessImpl.java:130)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
    ... 8 more

해결법

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

    1.S3에 저장된 쉘 스크립트를 실행하려면 s3 : //elasticmapreduce/libs/script-runner/script-runner.jar에있는 script-runner.jar을 사용하십시오.

    S3에 저장된 쉘 스크립트를 실행하려면 s3 : //elasticmapreduce/libs/script-runner/script-runner.jar에있는 script-runner.jar을 사용하십시오.

    command-runner.jar는 로컬 파일에서만 작동합니다.

  2. from https://stackoverflow.com/questions/34151518/aws-emr-4-0-how-can-i-add-a-custom-jar-step-to-run-shell-commands by cc-by-sa and MIT license