복붙노트

[HADOOP] oozie를 사용하여 S3에 파일을 이동

HADOOP

oozie를 사용하여 S3에 파일을 이동

나는 AWS의 oozie을 사용하여 S3에 파일을 이동합니다. 나는 실행하려면

aws s3 mv s3://temp/*.zip s3://temp/processed_files/. --recursive

나는 oozie에서이 작업을 수행 할 수 있습니까?

2015-11-12 10:18:55,758  WARN ShellActionExecutor:542 - USER[hadoop] GROUP[-] TOKEN[] APP[rad_workflow] JOB[0000118-151029144311676-oozie-oozi-W] ACTION[0000118-151029144311676-oozie-oozi-W@sh] Launcher exception: Cannot run program "move.sh" (in directory "/mnt1/yarn/usercache/hadoop/appcache/application_1446129655727_0421/container_1446129655727_0421_01_000002"): error=2, No such file or directory
java.io.IOException: Cannot run program "move.sh" (in directory "/mnt1/yarn/usercache/hadoop/appcache/application_1446129655727_0421/container_1446129655727_0421_01_000002"): error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
    at org.apache.oozie.action.hadoop.ShellMain.execute(ShellMain.java:93)
    at org.apache.oozie.action.hadoop.ShellMain.run(ShellMain.java:55)
    at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:37)
    at org.apache.oozie.action.hadoop.ShellMain.main(ShellMain.java:47)
    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.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:226)
    at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:65)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:452)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:344)
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:171)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:166)
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)
    ... 17 more

2015-11-12 10:18:55,838  INFO ActionEndXCommand:539 - USER[hadoop] GROUP[-] TOKEN[] APP[rad_workflow] JOB[0000118-151029144311676-oozie-oozi-W] ACTION[0000118-151029144311676-oozie-oozi-W@sh] ERROR is considered as FAILED for SLA
2015-11-12 10:18:55,880  INFO ActionStartXCommand:539 - USER[hadoop] GROUP[-] TOKEN[] APP[rad_workflow] JOB[0000118-151029144311676-oozie-oozi-W] ACTION[0000118-151029144311676-oozie-oozi-W@killemail] Start action [0000118-151029144311676-oozie-oozi-W@killemail] with user-retry state : userRetryCount [0], userRetryMax [0], userRetryInterval [10]

색조 Oozie 스크린 샷 오류 로그의 스크린 샷.

해결법

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

    1.당신은 여전히 ​​작동하지 않는 것을 헬무트 Zechmann 말과 한 경우, 문제가 아닌 유닉스 하나의 윈도우 라인 엔딩을 가지고 쉘 스크립트에 연결되지 않았는지 확인합니다.

    당신은 여전히 ​​작동하지 않는 것을 헬무트 Zechmann 말과 한 경우, 문제가 아닌 유닉스 하나의 윈도우 라인 엔딩을 가지고 쉘 스크립트에 연결되지 않았는지 확인합니다.

    메모장 ++ 또는 다른 도구를 사용하여 올바른 형식으로 변환하려고합니다.

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

    2.(S3)에서 파일을 이동하고 oozie에서 자바 액션으로 구현하는 자바 클래스를 작성한다.

    (S3)에서 파일을 이동하고 oozie에서 자바 액션으로 구현하는 자바 클래스를 작성한다.

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

    3.문제는 oozie이 스크립트를 찾을 수 있다는 것입니다. HDFS에 스크립트를 넣어 쉘 액션의 파일 요소를 사용하여 스크립트에 대한 Alies 보낸을 제공합니다 :

    문제는 oozie이 스크립트를 찾을 수 있다는 것입니다. HDFS에 스크립트를 넣어 쉘 액션의 파일 요소를 사용하여 스크립트에 대한 Alies 보낸을 제공합니다 :

    <file>hdfs://path/to/move.sh#move.sh</file>
    

    이것은이 경우, # 이후에 제공된 이름으로 HDFS 경로에서 별칭을 만들어 move.sh. 지금 당신은 당신의 스크립트의 간부 인 요소에 move.sh 참조 할 수 있습니다.

    참조 https://oozie.apache.org/docs/3.3.0/DG_ShellActionExtension.html를 참조하십시오.

  4. from https://stackoverflow.com/questions/33667660/move-files-in-s3-using-oozie by cc-by-sa and MIT license