黑马Hive+Spark离线数仓工业项目-任务流调度工具AirFlow(1)

本文介绍了任务流调度工具AirFlow的背景、设计、功能和特点,以及在大数据项目中的应用。AirFlow由Airbnb创建,2019年成为Apache顶级项目,它支持Python实现的依赖调度和定时调度,提供了分布式任务调度、DAG任务依赖等特性。文章还回顾了Spark的核心概念,并详细讲解了AirFlow的部署启动、架构组件、开发规则,包括如何使用BashOperator和PythonOperator进行任务调度测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

任务流调度工具AirFlow

1. AirFlow介绍【了解】

   - 功能、特点
   - 架构角色、安装部署

2. **AirFlow使用【掌握】**

   - 核心:调度脚本【Python | Shell】
   - 定时调度:Linux Crontab表达式
   - 邮件告警:配置

3. 回顾Spark核心概念

   - 存储:安全性、高效性

   - 计算:使用【API:类、方法】、原理【资源使用】

   - 零碎:采集、调度、选举、可视化

   - Spark概念

     - 分布式资源:Master |  ResourceManager、Worker | NodeManager
     - 分布式程序:Driver 、Executor、Task
     - 原理性概念:Job、DAG、Stage

任务流调度回顾

目标:回顾任务流调度的需求及常用工具

路径

  - step1:需求
  - step2:常用工具

实施

需求

    - 相同的业务线,有不同的需求会有多个程序来实现,这多个程序共同完成的需求,组合在一起就是工作流或者叫做任务流

    - 基于工作流来实现任务流的自动化运行

- 需求1:基于时间的任务运行

- job1和job2是每天0点以后自动运行

- 需求2:基于运行依赖关系的任务运行

      - job3必须等待job1运行成功才能运行
      - job5必须等待job3和job4都运行成功才能运行

    - 调度类型

 定时调度:基于某种时间的规律进行调度运行
   - 调度工作流
依赖调度:基于某种依赖关系进行调度运行
   - 工作流中的程序的依赖关系

常用工具

    - Oozie:Cloudera公司研发,功能强大,依赖于MR实现分布式,集成Hue开发使用非常方便

      - 传统开发:xml文件

 ```xml
        <workflow>
            <start to="action1">
            </start>
            <action name='action1'>
                <shell>
                </shell>
                <ok to='action2'>
                <kill to='killAction'>
            </action>
            <action name='action2'>
                <shell>
                </shell>
                <ok to='action3'>
                <kill to='killAction'>
            </action>
            ……
        </workflow>
        ```

      - 现在开发:Hue通过图形化界面自主编辑DAG

      - 场景:CDH大数据平台

    - Azkaban:LinkedIn公司研发,界面友好、插件支持丰富、自主分布式,可以使用properties或者JSON开发

      - 开发properties文件,压缩成zip压缩包

        ```properties
        name='appname2'
        type=command
        dependencies=appname1
        comman='sh xxxx.sh'
        ```

      - 上传到web界面中

      - 场景:Apache平台

    - AirFlow:Airbnb公司研发,自主分布式、Python语言开发和交互,应用场景更加丰富

      - 开发Python文件

     ```python
        # step1:导包
        # step2:函数调用
        ```

      - 提交运行

      - 场景:整个数据平台全部基于Python开发

    - DolphinScheduler:易观公司研发,国产开源产品,高可靠高扩展、简单易用

AirFlow的介绍

目标:了解AirFlow的功能特点及应用场景

路径

  - step1:背景
  - step2:设计
  - step3:功能
  - step4:特点
  - step5:应用

实施

起源
    - 2014年,Airbnb创造了一套工作流调度系统:Airflow,用来替他们完成业务中复杂的ETL处理。从清洗,到拼接,只用设置好一套Airflow的流程图。
    - 2016年开源到了Apache基金会。
    - 2019年成为了Apache基金会的顶级项目:http://airflow.apache.org/。
  - **设计**:利用Python的可移植性和通用性,快速的构建的任务流调度平台
  - **功能**:基于Python实现依赖调度、定时调度
特点
    - 分布式任务调度:允许一个工作流的Task在多台worker上同时执行
    - DAG任务依赖:以有向无环图的方式构建任务依赖关系
    - Task原子性:工作流上每个task都是原子可重试的,一个工作流某个环节的task失败可自动或手动进行重试
    - 自主定制性:可以基于代码构造任何你需要调度的任务或者处理工具
      - 优点:灵活性好
      - 缺点:开发复杂
应用
    - 基于Python开发背景下的系统建议使用

AirFlow的部署启动

目标:了解AirFlow的工具部署及管理

路径

  - step1:安装部署
  - step2:启动测试
  - step3:关闭

实施

安装部署

    - 自行安装:《参考附录一》
    - 放弃安装:请将虚拟机快照恢复到《AirFlow安装完成》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值