2015-04-15 2 views
0

У меня есть рабочий процесс oozie, который вызывает действие sqoop и hive. Этот отдельный рабочий процесс отлично работает, когда я запускаю oozie из командной строки. Поскольку скрипты sqoop и hive меняются, я передаю значения workflow.xml с использованием файла job.properties.Falcon & Oozie - Как настроить job.properties для oozie в falcon

Судо oozie работа -oozie http://hostname:port/oozie -config job.properties -run

Теперь я хочу, чтобы настроить этот 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, который автоматически принимает работу. свойства. Поместите файл свойств в соответствующую папку HDFS, где workflow.xml выбирает ее, и вы можете изменить ее для каждого процесса. Теперь вы можете использовать ваш сокол 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. job.properties можно изменить локально, если вы создаете действие оболочки в oozie, которое вызывает oozie в командной строке в сценарии оболочки.

Смежные вопросы