2017-06-20 39 views
0

我試圖學習Oozie,我想做一個非常簡單的工作流程。爲此,我使用HUE創建第一個oozie工作流程。oozie錯誤「沒有這樣的文件或目錄」

我的第一個工作流程是執行一個shell命令文件「testhbase.sh」載:當我試圖把這個到Oozie的殼圖標

#!/bin/sh 
echo -e "scan 'hbasedepartementcap' " | hbase shell -n 

,在執行我得到:沒有這樣的文件或目錄...

我怎麼知道什麼參數設置在oozie !! ???

================================================================= 

>>> Invoking Shell command line now >> 


<<< Invocation of Main class completed <<< 

Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.ShellMain], main() threw exception, Cannot run program **"testhbase.sh"** (in directory "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/cloudera/appcache/application_1497950602840_0001/container_1497950602840_0001_01_000002"): error=2, No such file or directory 
java.io.IOException: Cannot run program "testhbase.sh" (in directory "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/cloudera/appcache/application_1497950602840_0001/container_1497950602840_0001_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:102) 
    at org.apache.oozie.action.hadoop.ShellMain.run(ShellMain.java:61) 
    at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:49) 
    at org.apache.oozie.action.hadoop.ShellMain.main(ShellMain.java:53) 
    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:236) 
    at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54) 
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:453) 
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343) 
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) 
    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:1693) 
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) 
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:186) 
    at java.lang.ProcessImpl.start(ProcessImpl.java:130) 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028) 
    ... 17 more 

Oozie Launcher failed, finishing Hadoop job gracefully 

Oozie Launcher, uploading action data to HDFS sequence file: hdfs://quickstart.cloudera:8020/user/cloudera/oozie-oozi/0000001-170620022445649-oozie-oozi-W/shell-3f8f--shell/action-data.seq 

Oozie Launcher ends 

> Blockquote 
+0

有人可以幫忙嗎? – ghjuvan

回答

0

當你有一個Oozie的動作所有的應用程序(bash腳本,罐子,HQL蜂房等),必須存在一個HDFS路徑上,而不是在Linux文件系統。

+0

你好,謝謝你的回答。我解決了我的問題的一部分:我將shell文件放在lib目錄下,並且它適用於shell和配置單元腳本。現在我正試圖在oozie工作流程中放置一個豬腳本.... – ghjuvan

0

您應該在「Files」列表中指定腳本的路徑。聽起來很奇怪,但如果路徑沒有指定兩次,Ooze將無法找到它。

希望這會有所幫助!

相關問題