从0到1搭建大数据平台之调度系统

news2024/11/16 15:43:48

大家好,我是脚丫先生 (o^^o)

大数据平台核心之一在于数据计算,分为离线计算和实时计算任务。

然而任务是离不开调度的。比如:我们要进行定时抽取业务数据库
的数据,定时跑hive/spark任务,定时推送日报、月报指标数据等。

因而调度系统是大数据平台不可或缺的,正如闹钟对于日常生活的重要性一样

首先上一个通用型的大数据平台框架:

由此而见,无论是离线任务或者实时任务,都是需要工作流的调度系统。

一、原始任务调度

传统的crontab是linux系统自带的调度工具,使用crontab可以在指定的时间执行一个shell脚本或者一系列Linux命令。

实例:

实例 1:每 1 分钟执行一次 command
命令:
*/1 * * * * command

可见,crontab的使用是非常方便的,配置也极其简单。

但是在任务量较少的时候,是非常nice。

然而随着任务越来越多,就会出现了

  • 1 任务不能在原来计划的时间完成,出现了上级任务跑完前,后面依赖的任务已经起来了,这时候没有数据,任务就会报错,或者两个任务并行跑了,出现了
    错误的结果。

  • 2 排查任务错误原因越来麻烦,各种任务的依赖关系越来越复杂,最后排查任务问题就行从一团乱麻中,一根一根梳理出每天麻绳。

  • 3 成千上万的任务,管理起来是非常麻烦的,无穷无尽的痛苦。

总而言之,crontab虽然配置简单易上手,但是随着任务越来越多,任务之间的依赖越来越复杂,那么它是无法满足我们的需求,去解决任务之间的复杂依赖。

二、调度系统

调度系统,关注的首要重点是在正确的时间点启动正确的作业,确保作业按照正确的依赖关系及时准确的执行。资源的利用率通常不是第一关注要点,业务流程的正确性才是最重要的。

但是到随着业务的发展,ETL任务越来越多,你会发现经常有任务因为资源问题没有按时启动!

实际调度中,多个任务单元之间往往有着强依赖关系,上游任务执行并成功,下游任务才可以执行。

比如 上游任务1结束后拿到结果,下游任务2、任务3需结合任务1的结果才能执行,因此下游任务的开始一定是在上游任务成功运行拿到结果之后才可以开始。

而为了保证数据处理结果的准确性,就必须要求这些任务按照上下游依赖关系有序、高效的执行,最终确保能按时正常生成业务指标。

那么在大数据平台中,调度系统的应用场景又是什么呢?

比如:在离线场景中,需要每天0点后,依次要执行数据采集、数据清洗、数据计算按照顺序依次执行。

  • job1首先进行数据采集任务。

  • job2则等待job1执行完成之后,则开始执行。

  • job3、job4、job5指标计算,需要job2执行完,则开始执行。

因此大数据中,可以把调度系统的作用说明为:定时调度和依赖调度。

三、大数据工作流调度框架

  • Apache Oozie
  • Azkaban
  • Airflow
  • DolphinScheduler

(1)Oozie

Oozie是一个用来管理Hadoop生态圈job的工作流调度系统。由Cloudera公司贡献给Apache。

Oozie是运行于Java servlet容器上的一个java web应用。

**目的:**是按照DAG(有向无环图)调度一系列的Map/Reduce或者Hive等任务。

**应用场景:**Hadoop 自带的开源调度系统,使用方式比较复杂,适合大型项目场景,但是它使用XML配置,oozie任务的资源文什都必颈放在HDFS文什系统上,配置不方便,同时也只用于Hadoop。

(2)Azkaban

Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。

**应用场景:**一个开源调度系统,使用方式比较简单,适合中小型项目场景,但是它使用java properties文件维护任务依赖关系,任务资源文件需要打包成zip,azkaban部署不是很方便。

(3) Airflow

Airf1ow是一款开源的,分布式任务调度框架,它将一个具有上下级依赖关系的工作流,组装成一个有向无环图。

利用Python的可移植性和通用性,快速的构建的任务流调度平台,实现依赖调度、定时调度。

它具有自己的web任务管理界面,dag任务创建通过python代码,可以保证其灵活airflow性和适应性。

(4)Apache DolphinScheduler

Apache DolphinScheduler是一个分布式、去中心化、易扩展的可视化DG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。

它很好与Spark和Flink整合集成,进行离线批处理任务和实时流计算调度与监控预警。

四、调度框架比较

给小伙伴们总结下这几个调度框架:

总体而言,海豚调度DolphinScheduler, 算是后起之秀。

它因为出来得晚,自然就会集成了以往调度框架的优点,万千优点于一身。

但是,不管如和去选择自己的调度框架,都是根据需求去综合分析的,比如我而言,对Airflow比较熟悉,所以项目中习惯用它。

五、Airflow2.x的docker版快速搭建

  • tar包如下所示:
链接:https://pan.baidu.com/s/1XE_iwx9PzSJBCcN4X0duTQ 
提取码:yyds

下载tar包,在服务器里进行导入:

docker load < xxx.tar

  • docker-compose.yml文件如下所示:
version: '3.7'
services:
    webserver:
        image: docker-airflow:2.2.5
        restart: always
        user: root
        privileged: true 
        environment:
            - LOAD_EX=n
            - EXECUTOR=Local
            - AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION=False
            - AIRFLOW__SCHEDULER__MIN_FILE_PROCESS_INTERVAL=5
            - AIRFLOW__CORE__SQL_ALCHEMY_CONN=mysql://root:123456@172.16.119.19:3306/airflow2
        logging:
            options:
                max-size: 10m
                max-file: "3"
        volumes:
            - ./dags:/usr/local/airflow/dags
            - ./airflow.cfg:/usr/local/airflow/airflow.cfg
        ports:
            - "8086:8080"
        command: webserver
        healthcheck:
            test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
            interval: 30s
            timeout: 30s
            retries: 3

根据docker-compose.yml进行启动:

docker up -d

撒花。

好了,今天就聊到这里,祝各位终有所成,收获满满!

我是脚丫先生,我们下期见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字档案馆系统测试前准备工作(“指标表”和“具体要求”可下载)

数字档案馆系统测试是国家档案局组织开展的一项针对县级以上国家综合档案馆数字档案馆建设情况的绩效评价工作。数字档案馆系统测试的评分依据是《数字档案馆系统测试指标表》&#xff08;后台回复“指标表”可下载&#xff09;&#xff0c;测试采用百分制。测试结果达到80分以…

华脉智联电力行业技术解决方案

一、前言 所谓电力应急&#xff0c;就是快速处理突发紧急事件尽量减少因供电中断造成的损失&#xff0c;快速修复故障设备或线路&#xff0c;使电力生产和运营恢复正常。重大施工事故、公共紧急事件、性质恶劣的违章操作、蓄意破坏、自然灾害等&#xff0c;都极易引发大规模停…

论文浅尝 | Future Event Prediction Based on Temporal KG Embedding

笔记整理&#xff1a;杨露露&#xff0c;天津大学硕士链接&#xff1a;https://www.techscience.com/csse/v44n3/49146/html动机对未来事件的准确预测在许多领域为社会带来巨大利益&#xff0c;减少损失&#xff0c;如内乱、流行病和犯罪。知识图谱是描述和建模复杂系统的通用语…

【状态估计】将变压器和LSTM与卡尔曼滤波器结合到EM算法中进行状态估计(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

讨教大学|六西格玛之属性值数据一致性分析

相信大家在日常的工作中肯定会遇到这样一种情况&#xff1a;产品的质量特性属于外观特性&#xff0c;即 需要靠人工判断产品是不是符合标准。当遇到客户投诉&#xff0c;或者内部报废率比较高的时候&#xff0c;经 常会遇到客户和领导的挑战&#xff1a; 如何保证员工清楚的知…

IO、NIO、BIO傻傻分不清吗,让我对象告诉你~~

1、Stream 与 Channel stream 不会自动缓冲数据&#xff0c;channel 会利用系统提供的发送缓冲区、接收缓冲区&#xff08;更为底层&#xff09;stream 仅支持阻塞 API&#xff0c;channel 同时支持阻塞、非阻塞 API&#xff0c;网络 channel 可配合 selector 实现多路复用二者…

电商系统概要设计

设计一个最小化的电商系统&#xff0c;理清楚电商系统的架构。目前唯一能确定的是&#xff0c;老板要做一个电商系统。具体做成什么样&#xff0c;还不清楚。你需要和老板讨论需求。 你&#xff1a;“咱们要做的业务模式是C2C、B2C还是B2B呢&#xff1f;” 老板&#xff1a;“…

CES 2023:NVIDIA发力元宇宙与汽车市场

作为全球规模最大、影响最为广泛的国际消费电子展&#xff0c;2023年的CES&#xff08;Consumer Electronics Show&#xff09;在美国拉斯维加斯如约而至。众所周知&#xff0c;作为全球消费电子产业发展的风向标&#xff0c;每年的CES都汇聚了各大科技企业最先进的技术与产品。…

Renesas setting-文件导入

导入工程 1.1, 文件\从文件系统选中打开项目… 1.2, 打开xpg_app文件 链接文件 2.1&#xff0c;选中项目\右键\属性 2.2&#xff0c;删除文件&#xff08;在不同电脑中绝对路径不同&#xff09; 属性\路径和符号&#xff0c; 源位置&#xff08;delete C 文件&#xff09;&…

在未联网的计算机中部署 yum 源和 EPICS 环境

1. 基本背景 EPICS 软件仓库&#xff1a;192.168.206.234:8888 安装方式&#xff1a;yum 2. 配置跳板机 跳板机功能&#xff1a;借助ssh 隧道服务进行端口转发&#xff0c;使未联网的计算机能够访问软件仓库。 将未联网的计算机与一台申请了无线校园网的笔记本电脑进行有线…

PCB结构和谐振(一)

本文构建了包括不同的旋转角度、不同的叠层和两种不同布线方法&#xff08;W 形和蛇形线&#xff09;的测试手段&#xff0c;对应于这些设计的谐振是通过 VNA 测量获得的。然后&#xff0c;使用仿真方法来帮助我们理解这些实验结果。为了消除仿真与实验之间的差异&#xff0c;研…

【chatGPT】一位聊天永远秒回的朋友

目录一、chatGPT介绍二、通过猿如意体验三、在openAI官网体验2.1注册openAI2.2使用和问题说明一、chatGPT介绍 ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型&#xff0c;一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的…

债务豁免,只是中昌数据的一次“回光返照”?

‍‍数据智能产业创新服务媒体——聚焦数智 改变商业因为经营不善&#xff0c;中昌大数据股份有限公司&#xff08;以下简称“中昌数据”&#xff09;已被实施退市风险警示&#xff0c;1月3日&#xff0c;中昌数据发布公告称收到两位债权人的《债务豁免函》&#xff0c;对中昌…

线程安全中的原子性,有序性和可见性

对于Java并发编程&#xff0c;一般来说有以下的关注点&#xff1a; 线程安全性&#xff0c;正确性。 线程的活跃性(死锁&#xff0c;活锁) 性能 其中线程的安全性问题是首要解决的问题&#xff0c;线程不安全&#xff0c;运行出来的结果和预期不一致&#xff0c;那就连基本要…

计算机的发展史与计算机硬件组成

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.计算机的发展史 1.计算机发展的四个时代 二.计算机硬件组成 …

#D. Journey之二

一,题目Description给出一棵树N个点及数字K接下来N-1行描述有关边的开始点&#xff0c;结束点.保证图中不会有环接下来K个数字&#xff0c;代表你要走过的点的编号.当然你可以自己选择出发点及行进的路线不一定按给定编号顺序前行,求走过的最短距离。FormatInput第一行给出N,K。…

工具及方法 - 文件正在被使用,无法改名或删除怎么办

有时我们想重命名或删除一个文件时&#xff0c;会提示错误&#xff0c;提示文件被占用。 比如提示&#xff1a;“The action can’t be completed because the folder is open in another program“。 或者&#xff1a; 或者&#xff1a; 就是因为有进程锁定(process is lock…

004-Ensp-实验-配置DNS

实验要求 1. 在PC2中Ping www.pc1.com 可以访问到PC2 2. 在PC1中Ping www.pc2.com 可以访问到PC2 网络结构 实验步骤 #需要开启DHCP [Huawei]interface g0/0/0 [Huawei-GigabitEthernet0/0/0]dhcp server dns-list 192.168.0.100 测试

人工智能:数字图像类型和常见格式介绍

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

【C语言】-深入内存带你看数据的存储

&#x1f387;作者&#xff1a;小树苗渴望变成参天大树 &#x1f389; 作者宣言&#xff1a;认真写好每一篇博客 &#x1f38a;作者gitee:link 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; 数据的存储&#x1f9e8; 前言✨一、数据类型…