【大数据】【调度】Airflow 和 Azkaban的选型

    科技2023-12-18  67

    Airflow和Azkaban这两个组件对大数据集群来说是相对独立的,都是可以独立于集群安装,所以不管是cdh还是hdp集群,都可以选择其中之一作为集群的任务调度系统。 我们公司有2套集群,国内国外各一套,然后因为历史原因国内用的是Azkaban,国外用的是Airflow,考虑到以后技术栈的统一,打算慢慢将两个集群的组件统一化。 最后选择airflow作为

    对比、

    调度组件AirflowAzkabanweb界面该有的功能都有,但是复杂不直观,甚至有点难用简单,工作流依赖清晰,易上手工作流层级dag - - tasksproject - - flows - - tasks工作流语法python脚本自定义DSL,key/value的语法跨dag/project依赖通过【ExternalTaskSensor】对其他dag依赖不支持跨project依赖易用程度安装部署复杂,包含包括WebServer、Scheduler、Worker简单,开箱即用回填(回补执行)支持,通过airflow内部变量如{{ ds }}实现不支持手动依赖执行支持,airflow在手动执行某个任务时,可以选择同时执行该任务的上游和下游任务。不支持,需要手动选择哪些任务需要执行调度中心HA不支持不支持执行器HA支持支持单点故障存在主节点故障风险存在主节点故障风险权限管控支持,用户级别支持,用户级别

    1、跨dag/project依赖: 这个是指某些任务需要依赖另外的dag/project中的任务,比如一些公共维度表的更新任务。 2、回补执行: 错过了某一次执行时间之后,往回去补充执行的行为。主要是日期变量的保留。 3、airflow.cfg/max_active_runs_per_dag: 这个参数是airflow中只允许每个dag同一时间内只有1天被调度起来,可以防止airflow恐怖的回填行为。

    总结、

    1、ariflow在功能上要比azkaban完整强大。 2、airflow在部署运维以及使用上要比azkaban复杂,成本高,无论是学习还是运维。 3、airdlow跟azkaban相比,功能上最大的优势是支持【回填】和【跨dag依赖】。 4、综上,azkaban基本上可以满足日常的调度任务需求,所以如果需要轻量级的调度组件的话,可以考虑使用azkaban;如果想要功能更完善的调度系统,可以考虑使用airflow,不过要忍受airflow不太友好的web界面。

    Processed: 0.010, SQL: 9