使用oozie协调器处理不规则定时数据

4si2a6ki  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(232)

我有多个数据源,需要在oozie协调工作流程中加以考虑。数据集是不规则生成的,这意味着数据可能在几天内不会生成。例如:

data_set1:
  ds1-1 - Sept-1-2015 - Data available
  ds1-2 - Sept-2-2015 - No Data
  ds1-3 - Sept-3-2015 - No Data
  ds1-4 - Sept-4-2015 - Data available
  ds1-5 - Sept-5-2015 - Data available
  ds1-6 - Sept-6-2015 - No Data
  ds1-7 - Sept-7-2015 - Data available.

Data_set2
  ds2-1 - Sept-1-2015 - Data available
  ds2-2 - Sept-2-2015 - Data available
  ds2-3 - Sept-3-2015 - Data available
  ds2-4 - Sept-4-2015 - No Data
  ds2-5 - Sept-5-2015 - Data available
  ds2-6 - Sept-6-2015 - Data available.
  ds2-7 - Sept-7-2015 - No Data

我的oozie coordinator作业计划每天运行。但是,由于数据集可能不一定可用,因此我必须选择可用且最新的数据集。对于上述给定的数据集,我希望在每次运行时考虑以下数据集:

Sept-1-2015 - ds1-1, ds2-1
  Sept-2-2015 - ds1-1, ds2-2   #since no ds1 available for day2.
  Sept-3-2015 - ds1-1, ds2-3   #since no ds1 available for day3.
  Sept-4-2015 - ds1-4, ds2-3   #since no ds2 available for day4.
  Sept-5-2015 - ds1-5, ds2-5
  Sept-6-2015 - ds1-5, ds2-6   #since no ds1 available for day6
  Sept-7-2015 - ds1-7, ds2-6   #since no ds2 available for day7.

有没有任何方法可以通过可用的oozie构造来实现这一点?

zrfyljdw

zrfyljdw1#

如果需要最新的可用数据,应该使用coord:latest el 功能。基本上, coord:latest 意思是,使用你能找到的最新数据。如果你想的话可以用 coord:latest(n) 这意味着
${coord:latest(int n)}表示同步数据集当前可用的第n个最新示例。
在您的情况下,请使用以下示例:

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

相关问题