将oozie作业上次运行日期传播到最后一个值

时间:2016-01-13 03:55:22

标签: hadoop oozie sqoop

我有一个oozie工作流,它运行sqoop命令,根据lastupdatedate从表中逐步加载数据。 如何设置--last-value以便从上次运行作业到现在获取记录?

1 个答案:

答案 0 :(得分:1)

如果要将数据导入配置单元表,则可以从配置单元表中查询上次更新的值,并将该值传递给sqoop导入查询。

  1. 基于逻辑检索的select查询的Hive操作 最后更新的价值。
  2. 来自捕获的输出的增量负载的Sqoop动作 以前的蜂巢行动。
  3. PFB sudo工作流​​程:

    <workflow-app name="sqoop-to-hive" xmlns="uri:oozie:workflow:0.4">
    <start to="hiveact"/>
    <action name="hiveact">
        <hive xmlns="uri:oozie:hive-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>
            <script>script.sql</script>
    <capture-output/>
        </hive>    
        <ok to="sqoopact"/>
        <error to="kill"/>
    
    <action name="sqoopact">
        <sqoop xmlns="uri:oozie:sqoop-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <command>import --connect jdbc:mysql://localhost:3306/ydb --table yloc --username root -P --incremental append --last-value ${wf:actionData('hiveact')}</command>
         </sqoop>
        <ok to="end"/>
        <error to="kill"/>
    </action>
    <kill name="kill">
        <message>Action failed</message>
    </kill>
    <end name="end"/>
    

    希望这有帮助。