标题:【一个批量计算的调度系统的设计与实现】如果需要对成千上万的网络抓包数据 ...
只看楼主
qq841099438
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-12-5
 问题点数:0 回复次数:0 
【一个批量计算的调度系统的设计与实现】如果需要对成千上万的网络抓包数据文件在规定的时间内进行解析,应该怎么做?
原文地址:http://click.

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

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

场景
有大量的文件
每个文件的处理需要花**大量的CPU时间**,对IO的负载不大。
要在规定的时间内完成处理
思路
单机无法达成目标,需要使用集群
设计一个批量计算的调度系统
设计
因为该场景是重计算轻IO的,所以可以将所有的文件集中到某一个文件系统中,比如HDFS或者FTP。
元数据的管理,放在关系型数据库上,具体的来讲,就是放在MySQL中。因为MySQL技术相对成熟,使用的人多,能够支撑。
在每个计算节点,部署守护程序。每个守护程序都是独立的。守护程序通过抢占式的调度方式,来启动任务。 架构如下图所示: arch
实现
数据库设计
主要分3部分:

文件相关的表
任务相关的表
计算节点相关的表
守护程序设计
主要分为3个独立的程序

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

保证launcher的精简和健壮,不会任务任务的失败导致整个节点的调度挂掉
保证对task的监控,如果某一task失败,也需要报告其状态,达到对任务的完整跟踪。
应用
规模
1 台MySQL服务器
1 个文件系统
12 个计算节点
45350 个文件

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

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

原文地址:http://click.
搜索更多相关主题的帖子: 调度系统 网络 单机 
2017-01-16 13:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-473632-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.305967 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved