大数据-工作流调度引擎

大数据任务调度

应用   大数据开发平台  
  大数据任务调度引擎  
  任务执行引擎 
  任务监控告警  
  海量异构数据同步 
  数据采集(同步)—数据处理—数据管理

调度系统功能构成

01.调度系统-调度方式
     定时调度 、依赖调度
     手动调度--手动暂停/停止/恢复/从指定节点恢复/  补数据 忽略
     异常处理-- 失败重试 失败告警 超时告警、超时失败
02.调度系统-工作流
     工作流优先级
     工作流全局参数和节点自定义参数
     动态、批量创建和更新工作流
03.调度系统-任务
     任务类型: shell python SQL Spark Flink 
     任务优先级
     任务参数传递
04.调度系统-监控
    可视化监控任务的运行状态
    任务日志的查看和下载

 跨项目依赖功能
 工作流实例 任务实例达到了 **个
 角度
  从管理,开发,运维三个角度   开发角度: 项目 --> 工作流 --> 节点任务     运维角度:  作业失败排查  告警 任务执行统计

项目Github:

1.Apache Airflow - A platform to programmatically author, schedule, and monitor workflows   
  24.4k stars 728 watching  9.9k forks
  源码地址: https://github.com/apache/airflow
  2016年 Airbnb开源到了Apache基金会,2019年成为了Apache基金会的顶级项目

2.Apache DolphinScheduler is a distributed and extensible workflow scheduler platform with powerful DAG visual interfaces, 
 dedicated to solving complex job dependencies in the data pipeline and providing various types of jobs available out of box.
   7.2k stars  299 watching  2.7k forks
   源码地址: https://github.com/apache/dolphinscheduler
   2019年8月易观开源到了Apache基金会, 2021年4月成为了Apache基金会的顶级项目

 3. Azkaban workflow manager.
  3.9k stars  253 watching   1.5k forks
  源码地址:  https://github.com/azkaban/azkaban
 Linkedin

   4. Oozie Apache Oozie Workflow Scheduler for Hadoop
 633 stars 79 watching  453 forks
  源码地址: https://github.com/apache/oozie
   使用XML配置,文件存放在HDFS中
 5 业务上-调度  XXL-JOB是一个轻量级分布式任务调度平台

对比和使用

Airflow基础概念
  DAG
  Operators 
  Task
  Task Instance: success、running、failed、skipped、up_for_reschedule、up_for_retry、queued、no_status
  Trigger Rules
  Task Relationships
  Connections
DolphinScheduler
     定时调度:系统采用 quartz 分布式调度器,并同时支持 cron 表达式可视化的生成
  datax  同步任务分为了周期任务和一次性任务

数据同步和集成

 数据采集和数据同步
01. 数据采集  
02. 数据同步  https://github.com/alibaba/DataX -- 数据集成
  DataX 是阿里巴巴开源的一个异构数据源离线同步工具,
    致力于实现包括关系型数据库(MySQL、Oracle 等)、
	HDFS、Hive、ODPS、HBase、FTP 等各种异构数据源之间稳定高效的数据同步功能
  框架: Reader Framework  Wiriter
         Job Task   Schedule  TaskGroup
   可视化- 可视化界面,datax推荐datax web
   Kettle :
   Apache Hop data integration platform
      数据处理简化为Job(流程控制、调度)和Transform(数据转换流)
   日志方案是对于大量数据采集会比较适合
03.数据同步
     ETL同步之道  [ Sqoop、DataX、Kettle、Canal、StreaSets ]
     ETL之技术栈  [ 重工具 vs 开发语言 ]
	    主流的etl工具 有 Sqoop、DataX、Canal、flume、Logstash、kettle、DataStage、Informatica、Talend等,
		        语言 有 SQL、Shell、Python、Java、Scala等
		具体解释
		 sqoop 分为导入(import)和导出(export),策略分为table和query,模式分为增量和全量。
		 DataX 本身作为离线数据同步框架,采用Framework + plugin架构构建
		 canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据实时订阅和消费
		 kettle、DataStage、Informatica 
		 分别是Ascential公司的 Datastage、
		     Informatica公司的 Powercenter、
			 NCR Teradata公司的ETL Automation
			 开源工具,如PDI(Kettle)
	    日志收集系统  
		        Flume
		        Logstash 是著名的开源数据栈ELK(ElasticSearch,Logstash,Kibana)中的那个L
			Splunk 商业
     ETL加载策略  [ Merge、Delta、拉链 ]
	    数据集成加载策略,按类型可包括快照、流水、增量、全量、拉链等

调度系统与数据治理与数据资产

质量管理-元数据管理
数据资产管理平台
 01.元数据管理系统	 
   Apache Atlas  数据分类、集中策略引擎、数据血缘、安全和生命周期管理在内的元数据治理核心能力 	 
   wherehows   元数据仓库完成血缘分析。由 linkedin 开源。支持 Docker 部署
 02.大数据领域数据质量	
  数据治理 数据质量平台化
    治理流程  ,如果能够做到简单的治理流程化,那么必然可以产出一份质量报告
	 游链路数据异常或者自身处理逻辑的 BUG-- 数据加工链路较长--问题的定位难度	 
 03. 质量管理系统-规则描述和规则管理
  Apache Griffin
  Qualitis 是微众银行开源的一款数据质量管理系统
  质检任务由公司内部统一的调度引擎调度执
  血缘关系建立全链路的数据质量监控。当前的监控粒度是任务级的--监控粒度到表-监控粒度到字段

调度系统与机器学习平台

方向之一: 基于调度系统实现机器学习平台
 类似--  基于 DolphinScheduler 可以做到类似 阿里 PAI 的平台效果
  1. 需要对海量数据存算,比如筛选样本、生成画像、特征预处理、分布式模型训练等; 
  2、需要 DAG 执行引擎,将获取数据->数据预处理->模型训练->模型预测->模型评估->模型发布等流程用 DAG 串联起来执行
  机器学习的五大范式,获取训练样本、数据预处理、模型训练、模型评估、模型发布过程

调度系统与任务管理平台

  任务管理平台,因此我们的整个架构,
    DolphinScheduler 职责只是做定时调度。像数据处理、数据爬取等都是交于Kubernetes中
DevOps 案例01
  1.)编写数据处理逻辑,并提交代码到Gitlab上;
  2)Gitlab触发Runner,然后进行代码测试、编译、打包;
  3)在Runner中调用DolphinScheduler API并根据配置生成任务;
  4)DolphinScheduler 定时调度生成的任务,并通过Spark-Client提交任务到Kubernetes上

实际问题

 任何业务、技术、数据的规范过程,短时间内都会对实际工作造成负面的影响。
 不是所有人都能理解规范化所带来的优点	 
 微服务
   Istio Connect, secure, control, and observe services.
    https://github.com/istio  并提供负载均衡、服务间认证以及监控等能力
  含容器、微服务、DevOps 三大部分内容 
     包括服务发现,负载平衡,故障恢复,指标和监控		    

参考

  系列 | 漫谈数仓第三篇NO.3 『数据魔法』ETL https://cloud.tencent.com/developer/article/1514017?from=15425
  荔枝机器学习平台与大数据调度系统“双剑合璧”,打造未来数据处理新模式!
  https://dolphinscheduler.apache.org/zh-cn/blog/Lizhi-case-study.html
  DolphinScheduler & K8s 在优路科技的实践 https://mp.weixin.qq.com/s/roNuuZ1AWySam5WwNQHwhg
  数据湖VS数据仓库?湖仓一体了解一下  https://cloud.tencent.com/developer/article/1800089
  https://dolphinscheduler.apache.org/zh-cn/blog/DAG.html  大数据工作流任务调度--有向无环图(DAG)之拓扑排序
posted @ 2022-01-20 10:57  辰令  阅读(1167)  评论(0编辑  收藏  举报