2016-12-27 15 views
0

Oozieのワークフローから実行しているシェルスクリプトからHDFSのファイルやディレクトリを追加/削除できません。 ユーザー名は「scitest」で、編集/追加/削除しようとしているhdfsパスは /user/scitest /です。ディレクトリの作成中にOozieシェルアクションの問題が発生する

シェルスクリプトでは、パス/ user/scitest /からtest123456という名前のフォルダを削除しようとしています。

--------------- oozieログからのエラー------------------

[email protected]] Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.ShellMain], exit code [1] 
2016-12-27 05:04:25,553 INFO ActionEndXCommand:520 - SERVER[vscihadoopvm2.manhdev.com] USER[scitest] GROUP[-] TOKEN[] APP[shell.workflow] JOB[0000041-161208225429737-oozie-oozi-W] ACTION[[email protected]] ERROR is considered as FAILED for SLA 

---------シェルスクリプト(sample.sh)コンテンツ----------

#!/bin/bash 
echo "`date` hi" > output.log 
hadoop fs -mkdir test123456 

------- job.properties-- -------

nameNode=hdfs://vscihadoopvm1.manhdev.com:8020 
jobTracker=vscihadoopvm2.manhdev.com:8050 
master=yarn-cluster 
#user.name=yarn 
queueName=default 
examplesRoot=oozietest 
oozie.use.system.libpath=true 
oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot} 

--- --- workflow.xml

<?xml version="1.0" encoding="UTF-8"?> 
<workflow-app xmlns="uri:oozie:workflow:0.5" name="shell.workflow"> 
<start to="shell-node"/> 
    <action name="shell-node"> 
    <shell xmlns="uri:oozie:shell-action:0.3"> 
     <job-tracker>${jobTracker}</job-tracker> 
     <name-node>${nameNode}</name-node> 
     <configuration> 
     <property> 
      <name>mapred.job.queue.name</name> 
      <value>${queueName}</value> 
     </property> 
     </configuration> 
     <exec>sample.sh</exec> 
     <file>sample.sh#sample.sh</file> 
    </shell> 
    <ok to="end"/> 
    <error to="kill"/> 
    </action> 
    <kill name="kill"> 
    <message>Error in Shell.Please refer the Oozie Logs</message> 
    </kill> 
    <end name="end"/> 
</workflow-app> 
+0

エラーメッセージは私にとっては問題ではないようです。私はスクリプトを実行することができます。また、workflow.xmlのシェルアクションの 'file'タグに完全なパスを指定してください。ありがとう。 – YoungHobbit

+0

@YoungHobbit、あなたの応答のためにありがとう。 – abhiroy82

+0

@YoungHobbit、あなたの応答をありがとう。シェルスクリプトの完全なhdfsパスを追加しようとしましたが、役に立たなかった.. /user/scitest/oozietest/sample.sh #sample.shしかし、助けてくれませんでした...同じエラーを出しました...許可の問題かもしれません.. – abhiroy82

答えて

0

@Abhiroy、あなたはoozieアクションが実行されたばかりのユーザーに確認することができます場合はたぶん、そのより良いです。サンプルのシェルスクリプトに引用符を付けずに単に 'id'を置き、ワークフローを実行するだけです。その後、oozieジョブ・ログをトレースして、oozieが使用しているサンプル・スクリプトのコンテナ実行者を確認できます。次に、権限の問題がある場合は、トレースを開始できます。

+0

あまりにもDeepakに感謝します。私はこれを撃ちます.. – abhiroy82

関連する問題