2017-06-20 12 views
0

私はOozieを習得しようとしています。とても簡単なワークフローを作りたいと思っています。 そのために、私はHUEを使用して最初のoozieワークフローを作成します。"そのようなファイルやディレクトリがありません"というエラーが表示される

私の最初のワークフローが含むシェル・コマンド・ファイル「testhbase.sh」を実行することです:いいえそのようなファイル:私は取得の実行時に、Oozieでシェルアイコンにこれを入れしようとしたときに

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

をまたはディレクトリ...

私はどのようなパラメータをoozieに設定するか知っていることができますか????あなたは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

は、すべてのアプリケーション(bashスクリプト、JAR、HQLハイブなど)がないLinuxのファイルシステム上で、HDFSパス上に存在する必要があります。

+0

お返事ありがとうございます。私は私の問題の一部を解決しました:私はlibディレクトリの下にシェルファイルを置くと、シェルとハイブスクリプトのための仕事です。私は今、豚のスクリプトを怠惰なワークフローの中に入れようとする新たな問題を抱えています.... – ghjuvan

0

"ファイル"リストにもスクリプトへのパスを指定する必要があります。奇妙に思えますが、パスが2回指定されていない場合、Oozeはパスを見つけることができません。

希望すると便利です。