2015-04-15 38 views
0

我有一個調用sqoop和hive操作的oozie工作流。當我從命令行運行oozie時,這個單獨的工作流程正常工作。 由於sqoop和hive腳本不同,我使用job.properties文件將值傳遞到workflow.xml。Falcon&Oozie - 如何在falcon中爲oozie配置job.properties

須藤Oozie的工作-oozie http://hostname:port/oozie -config job.properties經營;

現在我想配置獵鷹這個Oozie的工作流程。你能幫我弄清楚我可以在哪裏配置或傳遞job.properties?

下面是獵鷹process.xml

<process name="demoProcess" xmlns="uri:falcon:process:0.1"> 
<tags>pipeline=degIngestDataPipeline,owner=hadoop, externalSystem=svServers</tags> 
<clusters> 
    <cluster name="demoCluster"> 
     <validity start="2015-01-30T00:00Z" end="2016-02-28T00:00Z"/> 
    </cluster> 
</clusters> 
<parallel>1</parallel> 
<order>FIFO</order> 
<frequency>hours(1)</frequency> 
<outputs> 
    <output name="output" feed="demoFeed" instance="now(0,0)" /> 
</outputs> 

<workflow name="dev-wf" version="0.2.07" 
engine="oozie" path="/apps/demo/workflow.xml" /> 

<retry policy="periodic" delay="minutes(15)" attempts="3" /> 
</process> 

我無法找到網頁或對此獵鷹文檔上有很大幫助。

回答

0

我曾在獵鷹一定的發展,但沒有嘗試獵鷹香草很多,但是從我從下面的教程瞭解:

http://hortonworks.com/hadoop-tutorial/defining-processing-data-end-end-data-pipeline-apache-falcon/

我會嘗試創建Oozie的-workflow.xml這動態接受job.properties。將屬性文件放在workflow.xml從中選取的相應HDFS文件夾中,並且可以爲每個進程更改它。現在你可以使用你的獵鷹process.xml並使用命令行調用它:

獵鷹實體型過程-submit -file process.xml

而且在路徑= /應用/演示/ workflow.xml你不需要明確指定workflow.xml。你可以只給文件夾名稱,例如:

<process name="rawEmailIngestProcess" xmlns="uri:falcon:process:0.1"> 

<tags>pipeline=churnAnalysisDataPipeline,owner=ETLGroup,externalSystem=USWestEmailServers</tags> 


<clusters> 
    <cluster name="primaryCluster"> 
     <validity start="2014-02-28T00:00Z" end="2016-03-31T00:00Z"/> 
    </cluster> 
</clusters> 

<parallel>1</parallel> 
<order>FIFO</order> 
<frequency>hours(1)</frequency> 

<outputs> 
    <output name="output" feed="rawEmailFeed" instance="now(0,0)" /> 
</outputs> 

<workflow name="emailIngestWorkflow" version="2.0.0" 
engine="oozie" path="/user/ambari-qa/falcon/demo/apps/ingest/fs" /> 

<retry policy="periodic" delay="minutes(15)" attempts="3" /> 

0

在第二個想法我覺得你可以創建一個Oozie的殼牌行動調用sqoop_hive.sh其中有下面的代碼行它:

sudo oozie job -oozie http://hostname:port/oozie -config job.properties -run。

Workflow.xml樣子:

<workflow-app xmlns="uri:oozie:workflow:0.4" name="shell-wf"> 
<start to="shell-node"/> 
<action name="shell-node"> 
    <shell xmlns="uri:oozie:shell-action:0.2"> 
     <job-tracker>${jobTracker}</job-tracker> 
     <name-node>${nameNode}</name-node> 
     <configuration> 
      <property> 
       <name>mapred.job.queue.name</name> 
       <value>${queueName}</value> 
      </property> 
     </configuration> 
     <exec>sqoop_hive.sh</exec> 
     <argument>${feedInstancePaths}</argument> 
     <file>${wf:appPath()}/sqoop_hive.sh#sqoop_hive.sh</file> 
     <!-- <file>/tmp/ingest.sh#ingest.sh</file> --> 
     <!-- <capture-output/> --> 
    </shell> 
    <ok to="end"/> 
    <error to="fail"/> 
</action> 
<kill name="fail"> 
    <message>Shell action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
</kill> 
<end name="end"/> 

調用此使用獵鷹過程調用,比如:

獵鷹實體型過程-submit -file process.xml。如果您在oozie中創建一個在shell腳本內調用oozie命令行中的shell操作,則可以在本地更改job.properties。