• 大数据工作流调度引擎


    大数据任务调度

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

    调度系统功能构成

    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)之拓扑排序
  • 相关阅读:
    Flex 布局
    vue学习之用 Vue.js + Vue Router 创建单页应用的几个步骤
    vue学习起步:了解下
    vue学习一:新建或打开vue项目(vue-cli2)
    adb环境变量配置
    数据类型判断和数据类型转换代码工具
    日期工具集合
    postman变量的使用和设置
    浮点数运算和金额处理
    07- Linux常用命令
  • 原文地址:https://www.cnblogs.com/ytwang/p/15825475.html
Copyright © 2020-2023  润新知