2016-05-04 16 views
1

私はoozieにリモートからhdfs.Butにファイルをコピーする単純なシェルアクションを書き込もうとしていますが、エラーが発生しています。ここでOozieシェルの作業の流れ

は私の仕事は私のuploadFile.shが

#!/bin/bash -e 

hadoop fs -copyFromLocal /home/root5/Desktop/Avinash_sampleData/DataFolder/Data_04-05-2016 /user/root5/Oozie/DataFolder 

マイjob.propertiesある

<workflow-app name="WorkFlowCopyLocalTohdfs" xmlns="uri:oozie:workflow:0.1"> 
<start to="sshAction"/> 
<action name="sshAction"> 
    <shell xmlns="uri:oozie:shell-action:0.1"> 
    <job-tracker>${jobTracker}</job-tracker> 
    <name-node>${nameNode}</name-node> 
    <exec>/user/root5/Oozie/Workflow/WorkFlowCopyLocalTohdfs/uploadFile.sh</exec> 
     <file>/user/root5/Oozie/Workflow/WorkFlowCopyLocalTohdfs/uploadFile.sh#upload File.sh</file> 
     <capture-output/> 
</shell> 
<ok to="end" /> 
    <error to="killAction"/> 
</action> 
<kill name="killAction"> 
    <message>"Killed job due to error"</message> 
</kill> 
<end name="end"/> 
</workflow-app> 

をflow.xmlある

nameNode=hdfs://localhost:8020 
jobTracker=localhost:8021 
queueName=default 

oozie.libpath=${nameNode}/user/root/oozie-workflows/lib 
oozie.use.system.libpath=true 
oozie.wf.rerun.failnodes=true 

oozieProjectRoot=${nameNode}/user/root5/Oozie 
appPath=${oozieProjectRoot}/Workflow/WorkFlowCopyLocalTohdfs 
oozie.wf.application.path=${appPath} 

#inputDir=${oozieProjectRoot}/data 
[email protected] 

され、oozieのスタックトレースは

です
2016-05-04 16:09:36,023 INFO ActionStartXCommand:539 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]:start:] Start action [[email protected]:start:] with user-retry state : userRetryCount [0], userRetryMax [0], userRetryInterval [10] 
2016-05-04 16:09:36,023 WARN ActionStartXCommand:542 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]:start:] [***[email protected]:start:***]Action status=DONE 
2016-05-04 16:09:36,023 WARN ActionStartXCommand:542 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]:start:] [***[email protected]:start:***]Action updated in DB! 
2016-05-04 16:09:36,209 INFO ActionStartXCommand:539 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]] Start action [[email protected]] with user-retry state : userRetryCount [0], userRetryMax [0], userRetryInterval [10] 
2016-05-04 16:09:36,353 WARN ShellActionExecutor:542 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]] credentials is null for the action 
2016-05-04 16:09:37,441 INFO ShellActionExecutor:539 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]] checking action, external ID [job_201604251732_0160] status [RUNNING] 
2016-05-04 16:09:37,544 WARN ActionStartXCommand:542 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]] [***[email protected]***]Action status=RUNNING 
2016-05-04 16:09:37,544 WARN ActionStartXCommand:542 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]] [***[email protected]***]Action updated in DB! 
2016-05-04 16:09:53,082 INFO CallbackServlet:539 - USER[-] GROUP[-] TOKEN[-] APP[-] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]] callback for action [[email protected]] 
2016-05-04 16:09:53,317 INFO ShellActionExecutor:539 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]] action completed, external ID [job_201604251732_0160] 
2016-05-04 16:09:53,346 WARN ShellActionExecutor:542 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]] Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.ShellMain], exit code [1] 
2016-05-04 16:09:53,576 INFO ActionEndXCommand:539 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]] ERROR is considered as FAILED for SLA 
2016-05-04 16:09:53,754 INFO ActionStartXCommand:539 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]] Start action [[email protected]] with user-retry state : userRetryCount [0], userRetryMax [0], userRetryInterval [10] 
2016-05-04 16:09:53,755 WARN ActionStartXCommand:542 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]] [***[email protected]***]Action status=DONE 
2016-05-04 16:09:53,755 WARN ActionStartXCommand:542 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[[email protected]] [***[email protected]***]Action updated in DB! 
2016-05-04 16:09:53,943 WARN CoordActionUpdateXCommand:542 - USER[root5] GROUP[-] TOKEN[] APP[WorkFlowCopyLocalTohdfs] JOB[0000012-160425173341619-oozie-oozi-W] ACTION[-] E1100: Command precondition does not hold before execution, [, coord action is null], Error Code: E1100 

さらに進んでくださいように私を助けてください。

Hive-workflow.xml 
<workflow-app name="WorkFlowCopyLocalTohdfs" xmlns="uri:oozie:workflow:0.1"> 
<start to="hive-node"/> 
<action name="hive-node"> 
    <hive xmlns="uri:oozie:hive-action:0.2"> 
     <job-tracker>${jobTracker}</job-tracker> 
     <name-node>${nameNode}</name-node> 
     <job-xml>hive-site.xml</job-xml> 
     <configuration> 
      <property> 
       <name>mapred.job.queue.name</name> 
       <value>default</value> 
      </property> 
      <property> 
       <name>oozie.hive.defaults</name> 
       <value>hive-site.xml</value> 
      </property> 
     </configuration> 
     <script>Hive_script.hql</script> 
    </hive> 
    <ok to="end"/> 
    <error to="killAction"/> 
</action> 
<kill name="killAction"> 
    <message>"Hive failed, error message[${wf:errorMessage(wf:lastErrorNode())}]"</message> 
</kill> 
<end name="end"/> 
</workflow-app> 
And the Hive_script.hql 
.# LOAD DATA inpath '/user/root5/Oozie/DataFolder/Data_04_05_2016.txt' INTO TABLE OOZIE_TABLE1; 

答えて

0

ここでは基本的な問題に取り組んでいると思います。 Oozieワークフローを提出すると、ワークフローがどのノードで実行されるかはわかりません。したがって、あなたはoozieであなたのローカルファイルシステムを参照するべきではありません。あなたの代わりに何ができるか

  • 手動HDFSパスにファイルを置く
  • あなたのワークフローにこのパスを実装するには、oozieもあっ

からファイルをコピーしてみましょうインストールされているバージョンに適切なhadoopシェルコマンドを使用してください。私はhdfs dfs -putのようなものに慣れていますが、あなたは別のバージョンで作業するかもしれません。

+0

スクリプトファイル/user/root5/Oozie/Workflow/WorkFlowCopyLocalTohdfs/uploadFile.shをhdfsに配置する必要がありますか?もしそうなら、言及されたパスはhdfsパスのみです。また、http:// localhost:8020 // user/root5/Oozie/Workflow/WorkFlowCopyLocalTohdfs/uploadFile.shを入れてみましたが、どちらもうまくいきませんでした。 – Avinash

+0

私が話していることあなたのupload.shの 'hadoop fs -copyFromLocal/home/root5/Desktop/Avinash_sampleData/DataFolder/Data_04-05-2016/user/root5/Oozie/DataFolder' 私はこのような行を実行できないと思いますoozieの仕事では、あなたが意味するローカルファイルシステム上のパスをoozieが知りません。ファイルはすでにhdfsにある必要があります。 – OberstK

+0

でも、ハイブワークフローアクションを実行しようとしていますが、simlarエラーも返されています。shellMain起動エラーの代わりに、hiveMain Errorがスローされています。 2016-05-05 11:44:34,880 WARN HiveActionExecutor:542 - USER [root5] GROUP [ - ] TOKEN [] APP [WorkFlowCopyLocalTohdfs] JOB [0000029-160425173341619-oozie-oozi-W] ACTION [0000029-160425173341619-oozie-主なクラス[org.apache.oozie.action.hadoop.HiveMain]、終了コード[40000] – Avinash

関連する問題