一个批量计算的调度系统的设计与实现

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 如果需要对成千上万的网络抓包数据文件,在规定的时间内进行解析,应该怎么做?

如果需要对成千上万的网络抓包数据文件,在规定的时间内进行解析,应该怎么做?

场景

  1. 有大量的文件
  2. 每个文件的处理需要花 大量的CPU时间,对IO的负载不大。
  3. 要在规定的时间内完成处理

思路

  1. 单机无法达成目标,需要使用集群
  2. 设计一个批量计算的调度系统

设计

  1. 因为该场景是重计算轻IO的,所以可以将所有的文件集中到某一个文件系统中,比如HDFS或者FTP。
  2. 元数据的管理,放在关系型数据库上,具体的来讲,就是放在MySQL中。因为MySQL技术相对成熟,使用的人多,能够支撑。
  3. 在每个计算节点,部署守护程序。每个守护程序都是独立的。守护程序通过抢占式的调度方式,来启动任务。
    架构如下图所示:

arch

实现

数据库设计

主要分3部分:

  • 文件相关的表: 使用2个表来描述

    bc_file_list:文件清单  
    bc_fs_list:文件对应的文件系统的详情  
    
  • 任务相关的表:使用3个表来描述

    bc_task_list: 任务清单  
    bc_task_filein:输入  
    bc_task_fileout:输出  
    
  • 计算节点相关的表:使用1个表来描述

    bc_launcher_list:有那些机器,每台机器指配给了哪个任务  
    

sql

守护程序设计

主要分为3个独立的程序

  • launcher:负责与数据库交互 ,获取需要处理的文件信息(注意并发),监控节点健康状态
  • executor:负责与文件系统交互,启动具体的任务,监控任务执行状态
  • task: 具体的任务程序,比如一个网络数据的解析程序

分为3个独立程序的原因:

  • 保证launcher的精简和健壮,不会任务任务的失败导致整个节点的调度挂掉
  • 保证对task的监控,如果某一task失败,也需要报告其状态,达到对任务的完整跟踪。

launcher

应用

规模

1 台MySQL服务器
1 个文件系统
12 个计算节点
45350 个文件

负载

文件系统的网络带宽
net
MySQL的负载
db

结论

  1. 设计的系统满足了应用的要求
  2. 作为task的解析文件,在这个过程中经过了多次的变更,每次变更都需要重新解析整个文件。该系统可以很好的满足要求。

作者:https://yq.aliyun.com/u/huaheshang

相关文章
安诺云联合阿里云国内首推批量计算,助力三代Canu组装加速
随着测序技术的不断发展,大量基因组学数据被积累,对于数据分析软件的要求也越来越高,尤其是在做基因组组装分析时,软件的计算资料消耗和分析周期往往是研究者不得不考虑的问题。Canu[1]是一款目前广泛使用的三代基因组组装软件,文章发表短短两年时间,引用的次数已接近1000次,其中不乏顶级的CNS期刊。
2989 0
|
对象存储 文件存储 存储
阿里云批量计算怎么在控制台提交和管理作业?
阿里云批量计算(BatchCompute)是一种适用于大规模并行批处理作业的分布式云服务。 用户可以提交一个任意的计算机程序,让它在阿里云的多个 VM 实例上同时运行,然后把结果写入到指定的持久化存储位置(如阿里云对象存储 OSS 或者文件存储 NAS)。
1512 0
阿里云批量计算推出预付费模式,最高节省用户60%成本
近日,阿里云批量计算推出预付费模式,适用于有稳定长期计算量需求的批量计算客户,用户通过包月方式创建集群,可以降低计算资源成本。
1652 0
|
调度 数据挖掘 编解码
一分钟了解阿里云产品:批量计算概述
  阿里云有很多产品,今天让我们来了解下批量计算(BatchCompute)这款产品吧。   什么是批量计算呢?   批量计算是一种适用于大规模并行批处理作业的分布式云服务。BatchCompute可支持海量作业并发规模,系统自动完成资源管理,作业调度和数据加载,并按实际使用量计费。Bat
5650 0
|
6月前
|
分布式计算 关系型数据库 MySQL
DataWork数据处理问题之调整并发数量如何解决
DataWork数据处理是指使用DataWorks平台进行数据开发、数据处理和数据治理的活动;本合集将涵盖DataWork数据处理的工作流程、工具使用和问题排查,帮助用户提高数据处理的效率和质量。
|
6月前
|
Kubernetes 网络性能优化 调度
Koordinator v1.4 正式发布!为用户带来更多的计算负载类型和更灵活的资源管理机制
Koordinator v1.4 正式发布!为用户带来更多的计算负载类型和更灵活的资源管理机制
|
3月前
|
存储 监控 Java
实时计算 Flink版产品使用问题之随着时间增加,作业的CPU繁忙度增加,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3月前
|
数据处理 流计算 Docker
实时计算 Flink版产品使用问题之进行数据处理时,怎么确保维度的更新在逻辑处理之后进行
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
数据采集 DataWorks 安全
DataWorks产品使用合集之如何配置数据过滤规则以确保在同一时间调度执行的数据抽取或同步任务处理的是同一时间范围的数据
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。