在azkaban的项目中,各个flow是单独执行的,flow之间job的执行进度是不共享的.
如图,job1->job2和job1->job3是两个不同的flow,两个flow执行的时候job1都会被调度,造成重复调度资源浪费,还可能造成并发问题.
解决办法:
合并两个flow,给job2和job3添加一个逻辑依赖即可.添加如下job.
#job4 type=command command = echo do nothing dependencies =job2,job3
两个flow合并成一个大的flow以后,job1不会重复调度.DAG简图如下:
如果工程中任务量太大,可以选择配置schedule分批次执行.很简单的办法有时候就是想不到 : )