背景介绍

最近接手了一个项目,经过需求调研决定尝试使用 Airflow 调度数据生产,过程涉及:

  1. 从大数据 Hive 数据库整合数据宽表;
  2. 在 Spark 上运行 IRT 算法模型汇总 ADS 表。

从中学习了很多关于大数据的知识,同时也积累了如何通过 Airflow 提交 Spark 任务的经验,应当抽时间总结一下。

冰山之下

如「冰山理论」所描述,我们所做的只是冰山露在水面的一角,隐藏在冰山之下更大的一部份是:

  • Airflow + Celery
  • Docker
  • Hadoop(Hive) 集群
  • YARN 集群(Spark over YARN)

接下来我们将关注在「冰山水面上的一角」来阐述我们如何利用这些已有的技术连结了整个系统。

Make DAG great again

之前部门里有位算法大佬用 DAG(大佬念做「戴格」)实现了一套非常牛逼的文本和识别处理算法,然后每次讨论方案必谈 DAG, 所以 DAG 成了部门里都知道的一个梗,虽然大佬走了之后很少再有人提起 DAG,但是接下来我们会进行文艺复兴,让 DAG 再次出现在我们的日常技术讨论中。

Make DAG Great Again!

Airflow 介绍

架构

概念

  • DAG
  • Operator
  • Connection

Providers packages

See also: Provider packages.

Spark 介绍

架构

Spark 编程

Spark SQL Hive Table 示例

Airflow + Spark 平台化

Celery Worker as a Spark Driver

Celery Worker running on specific platform

Windows

Bigdata Hive client

DAGs 分发

提交 DAG

Python 依赖解决

  • Spark
  • Airflow

外部依赖?

未来

  • 承接更多的报告需求
  • 对内承接分析任务
  • 可编程、平台化的分析