分享

OOZIE调度timeout问题解答

BB_BDATA 发表于 2017-10-16 16:35:32 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 5964
有一个问题需要各位大神解答下:
基本流程是:用OOZIE调度SRC底层数据接口,SRC层脚本主要将hdfs上的数据文件,load到hive库中,oozie对src层的配置是4点开始调度,hdfs上的文件理论是四点之前提供,以日期分区,如果hdfs上一直没有提供数据文件的话,那么这个调度就会失败报超时错误,一般oozie会检测多长时间,从四点开始,半小时后如果还检测不到文件就会报timeout么?这个检测时间的配置是默认的么?还是在哪个文件中控制的,麻烦各位解答下,谢谢!

已有(2)人评论

跳转到指定楼层
langke93 发表于 2017-10-16 18:56:06
Coordinator的controls中定义
如下面文件的TIME_PERIOD
[mw_shl_code=xml,true]<coordinator-app name="[NAME]" frequency="[FREQUENCY]" start="[DATETIME]" end="[DATETIME]" timezone="[TIMEZONE]" xmlns="uri:oozie:coordinator:0.1">
     <controls>
          <timeout>[TIME_PERIOD]</timeout>
          <concurrency>[CONCURRENCY]</concurrency>
          <execution>[EXECUTION_STRATEGY]</execution>
     </controls>
     <datasets>
          <include>[SHARED_DATASETS]</include>
          ...
          <!-- Synchronous datasets -->
          <dataset name="[NAME]" frequency="[FREQUENCY]" initial-instance="[DATETIME]" timezone="[TIMEZONE]">
               <uri-template>[URI_TEMPLATE]</uri-template>
          </dataset>
          ...
     </datasets>
     <input-events>
          <data-in name="[NAME]" dataset="[DATASET]">
               <instance>[INSTANCE]</instance>
               ...
          </data-in>
          ...
          <data-in name="[NAME]" dataset="[DATASET]">
               <start-instance>[INSTANCE]</start-instance>
               <end-instance>[INSTANCE]</end-instance>
          </data-in>
          ...
     </input-events>
     <output-events>
          <data-out name="[NAME]" dataset="[DATASET]">
               <instance>[INSTANCE]</instance>
          </data-out>
          ...
     </output-events>
     <action>
          <workflow>
               <app-path>[WF-APPLICATION-PATH]</app-path>
               <configuration>
                    <property>
                         <name>[PROPERTY-NAME]</name>
                         <value>[PROPERTY-VALUE]</value>
                    </property>
                    ...
               </configuration>
          </workflow>
     </action>
</coordinator-app>[/mw_shl_code]
默认值为-1,表示永远不超时,如果为0 则总是超时。
回复

使用道具 举报

BB_BDATA 发表于 2017-10-17 09:48:40
langke93 发表于 2017-10-16 18:56
Coordinator的controls中定义
如下面文件的TIME_PERIOD
[mw_shl_code=xml,true]

谢谢解答,我这边的配置是没有controls标签的,那应该就是按默认值处理吧,也就是说无论hdfs什么时候提供了文件,只要检测到就调用src脚本,永远不超时的逻辑对么?
<coordinator-app name="1002" frequency="${coord:days(1)}" start="${start}" end="${end}" timezone="UTC"
                 xmlns="uri:oozie:coordinator:0.2">

    <datasets>
        <dataset name="inputdata" frequency="${coord:days(1)}" initial-instance="${start}" timezone="UTC">
            <uri-template>${nameNode}/user/hadoop/examples/input-data/dw/data-first</uri-template>
        </dataset>
        <dataset name="outputdata" frequency="${coord:days(1)}" initial-instance="${start}" timezone="UTC">
            <uri-template>${nameNode}/user/hadoop/examples/output-data/formal/${YEAR}/${MONTH}/${DAY}/</uri-template>
        </dataset>
        <dataset name="outputdata2" frequency="${coord:days(1)}" initial-instance="${start}" timezone="UTC">
            <uri-template>${YEAR}${MONTH}${DAY}</uri-template>
        </dataset>
    </datasets>

    <input-events>
        <data-in name="input" dataset="inputdata">
            <instance>${coord:current(0)}</instance>
        </data-in>
    </input-events>

    <output-events>
        <data-out name="output" dataset="outputdata">
            <instance>${coord:current(0)}</instance>
        </data-out>
        <data-out name="output2" dataset="outputdata2">
            <instance>${coord:current(0)}</instance>
        </data-out>
    </output-events>

    <action>
        <workflow>
            <app-path>${nameNode}/user/hadoop/OOZIE/1002</app-path>
            <configuration>
                <property>
                    <name>jobTracker</name>
                    <value>${jobTracker}</value>
                </property>
                <property>
                    <name>nameNode</name>
                    <value>${nameNode}</value>
                </property>
                <property>
                    <name>queueName</name>
                    <value>${queueName}</value>
                </property>
                <property>
                    <name>inputData</name>
                    <value>${coord:dataIn('input')}</value>
                </property>
                <property>
                    <name>outputData1</name>
                    <value>${coord:dataOut('output')}</value>
                </property>
                <property>
                    <name>outputData2</name>
                    <value>${coord:dataOut('output2')}</value>
                </property>
            </configuration>
        </workflow>
    </action>
</coordinator-app>

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条