azkaban设置依赖,并且多个任务并行执行

在azkaban的任务调度中,设置依赖可以完成对任务的调度,

脚本如下:

第一个job:命名为    ods_actlog.job

---
config:
  #failure.emails: xx@xx

nodes:
  - name: ods_actlog_sql_job
    type: command
    config:
      command: sh ods_actlog.sh

第二个命名为   dw_actlog_product_view.job

---
config:
  #failure.emails: xx@xx

nodes:
  - name: dw_actlog_product_view_sql_job
    type: command
    dependencies=ods_actlog     #设置依赖。后面是跟随的job
    config:
      command: sh dw_actlog_product_view.sh

这两个脚本指的是:第一个先执行,第二个后执行,具有先后顺序,这两个打包给azkaban后会自动判断依赖关系,结果为这样:

azkaban设置依赖,并且多个任务并行执行_第1张图片

---------------------------------------------------------------------------------

另外就是想要设置各个job之间的并行执行

这时候就可以设置多个job的依赖同一个job。如下

第一个job是: dw_actlog_product_view.job

---
config:
  #failure.emails: xx@xx

nodes:
  - name: dw_actlog_product_view_sql_job
    type: command
    config:
      command: sh dw_actlog_product_view.sh

第二个是: region.job

---
config:
  #failure.emails: xx@xx

nodes:
  - name: region_sql_job
    type: command
    config:
      command: sh region.sh

这样两个本来是不相关的两个job,如果想要这两个job执行完了,在执行第三个job(第三个job依赖第一个和第二个的数据进行计算),这样的话添加第三个job:

mid_actlog_product_view.job
---
config:
  #failure.emails: xx@xx

nodes:
  - name: mid_actlog_product_view_sql_job
    type: command
    dependencies=dw_actlog_product_view,region   #添加多个依赖,中间用逗号隔开
    config:
      command: sh mid_actlog_product_view.sh

这样的话,就是第三个job依赖第一个和第二个job了,必须等第一个和第二个job都执行结束,第三个job才能开始。

azkaban设置依赖,并且多个任务并行执行_第2张图片

---------------------------------------------------------------------------------------------------------------

另外,我们想要一个job结束后,同时开启第二个和第三个job同时执行,那么这两个子job的依赖配置为第一个job以外,还需要配置一个结束的第四个job,这个结束的第四个job需要同时依赖第二个和第三个,这个必须由,就算是没有job需要写了,也需要写一个空的job来同时依赖第二个和第三个job。

end.job

---
config:
  #failure.emails: xx@xx

nodes:
  - name: end_job
    type: noop
	dependencies=dm_actlog_product_view_region,dm_actlog_product_view
    

-----------------------------------------------------------------

这样的话,根据各个job之间的依赖关系就可以完成job之间的依赖并且并行执行,如下例:

azkaban设置依赖,并且多个任务并行执行_第3张图片

 

 

 

 

 

你可能感兴趣的:(Hive学习,大数据学习,azkaban)