分布式海量数据处理平台设计与实现

2017-01-24 15:28许劭庆马彪安海英
中小企业管理与科技·中旬刊 2016年12期
关键词:数据处理分布式

许劭庆++马彪++安海英

摘 要:为了提高电力行业网络各类监控设备告警信息和告警事件的处理速度,本文设计了由中心控制节点、计算节点、配置服务节点等构成的海量数据处理平台。通过中心控制节点实现任务的分解与控制,计算节点实现任务计算。使用基于文件格式的方式进行数据采集,利用Map/Reduce的模型进行数据汇总。采用本平台能够实现对海量告警信息的捕获和处理,保证告警分析的效率。

关键词:海量告警;分布式;数据处理

中图分类号: TP311 文献标识码: A 文章编号: 1673-1069(2016)35-175-2

0 引言

随着当今世界互联网的迅猛发展,电力行业也开始运用现代信息技术对电网的运行状况进行监控,电力网络各类监控设备每天都会产生大量的告警信息和告警事件,这些信息的采集、清洗、分析以及汇总所包含数据的计算与处理复杂度非常高,计算量非常大,所以会对计算机硬件性能有很高的要求。分布式计算技术能够将一些本身适合分解成大量更小计算片段的复杂问题进行分解,然后再将这些更小的计算片段分配到多个计算资源上,利用多个计算资源分别对这些小的计算片段进行分布式求解,这样不但有效的利用了各个闲置的计算资源,也加快了计算执行的效率,充分发挥了计算的高并行性。为此我们可以将分布式计算技术引入到电力行业告警信息和告警事件的处理中,提高信息的处理速度,为电力系统的运维监管提高效率。

本文是通过对当前已有的成熟的分布式计算系统如google的map/reduce架构以及hadoopDB等系统的研究调查,借鉴了map/reduce的基本思想,针对电力行业运维监控中的各种海量告警数据处理的业务,提出的分布式海量数据处理系统平台。

1 总体结构设计

海量分布式处理平台完成数据采集、任务分发、任务处理以及任务汇总等多项内容。平台主要包括了中心控制节点、计算节点、配置服务节点、拆分节点、日志节点、数据采集传输部件以及电信网络单元这七大部分。各部分之间互相通信,互相配合完成任务的拆分,发送及执行。其中Master为中心控制节点,CU为计算节点,CS为配置服务节点,TS为拆分节点,LS为日志节点,MED为数据采集传输部件,NES为电信网络单元,能独立完成一定的传输功能。

2 节点设计

2.1 中心控制节点

在整个系统中,中心控制节点是核心,负责系统中所有资源的调度,并根据计算节点的状态分配系统中的任务,进行相关的数据分析和计算,协调系统的整体运行。同时,为了防止主控节点意外挂机导致的数据丢失的现象,采用双机热备的机制来作为主控节点的备份。

Master中包含的主要子模块有通信、任务调度、任务管理、定时器和Corba、锁管理等模块。

①通信子模块:主要负责的是Master和其他子模块之间的通信,负责分发和接收模块间的消息报文;②任务管理子模块:主要负责对系统中处理任务的管理,包括最初的任务创建、任务运行过程中的状态保持、大任务的分解、所有任务的维护以及任务执行等功能。③任务调度子模块:主要完成任务调度的相关工作,包括依据任务的优先级对系统任务进行调度安排,锁进程的管理与维护,维持进程间的通讯等。④定时器模块:主要负责检查系统是否超时,以及处理超时后触发的事件等问题,定时的检测系统的各种状态等。⑤Master-Standby同步模块:主要负责同步Master上的任务到Standby,以减少因为Master出故障后造成的损失。

2.2 分布式计算节点

计算节点负责的是对海量数据进行具体的计算分析以及对数据的具体任务处理,涉及到最初的数据采集、计算完毕后的数据汇总、汇总结束后的数据备份以及最终结果的查询等阶段。计算节点是整个系统中的基础,是任务执行的基本单元,节点在运行的过程中,要分别与中心控制节点、外部模块以及参数配置节点等部分进行消息通讯,在处理这些信息的同事,还要通过任务调度实现对任务的并行处理调度。一个完整的计算节点通常由任务管理模块、通讯模块、数据操作模块以及定时器构成。计算节点中采用多线程技术实现以上的各项功能。

CU的主要作用就是并行高性能化地执行各种小作业,当有小作业需要被执行时,CU的具体执行流程为:①通过负载均衡模块,计算节点CU主动向Master主控节点请求作业,并获去作业的相关任务;②Master向主控进程中通信模块的Master Agent发送分配的新作业,并为其分配新的任务;③主控进程中通信模块的Progress Agent接收到在作业管理调度模块根据申请过来的作业生成对应的XXTask,然后将作业通过长连接的方式发送给工作进程Progress Agent;④作业管理模块受到已接收到新作业的工作进程的调度,生成工作进程相对应的XXTask;⑤新作业生成的Request被工作进程的作业管理模块通过管道放入MiddleServer中间层的请求队列中;⑥Request队列中所有的请求都是通过线程池模块调用自己相应的处理函数aio_process_request()来处理的,为了保证不同的小作业可以多线程并行地处理,线程池根据服务器的性能设置了线程的数量。⑦具体的作业通过线程池调用DB数据处理模块来执行,比如数据创建,数据查询等等。⑧最终的执行结果是在作业执行完毕后一层层的向上层返回的,数据结果还是被线程池通过管道机制逐层返回给Master

3 数据采集处理

平台的数据采集功能是采集网元数据,然后,根据不同的网元类型和网元号,对不同设备的性能数据以及告警数据,进行数据过滤分析并存入到平台数据库中,为管理人员实现数据的结构化管理提供基础,方便管理人员数据操作、分析以及领导的决策。本文数据采集采用的是一种基于文件格式的采集方式。采集任务的方案是计算节点主动从FTP服务器上取数据,然后将数据采集入库。数据采集流程步骤为:第1步:外部系统Med中间层接收到RNC因产生原始数据,形成数据文件而发来已经准备好的通知, 然后将请求转发到本系统Master控制节点。第2步:任务拆分服务器TS收到Master因采集请求生成的大任务, 在将其拆分多个小任务之后返还给Master,Master将小任务放入任务队列中。第3步:Master接收到计算节点CU主动申请的采集任务,Med将执行该任务的CU信息进行记录。第4步:CU从指定的FTP服务器上下载RNC上传的数据,为了能够使数据以结构化的形式入库,调用解析库对数据进行解析。第5步:CU在采集任务完成后,向控制节点发送任务执行完成报告,在收到任务消息报告之后,Master将从队列中移除任务。

4 数据汇总处理

系统的数据汇总是在对网元采集的数据计算处理后,进行一系列的有条件和逻辑顺序的数据加工和整合。本文采的数据汇总采用的是Map/Reduce的模型,在执行的过程中,采用临时表存储Map任务计算的临时结果,然后再通过Reduce任务,根据临时表中的数据计算汇总。通常情况下,策略数据汇总是具有一定策略的,最常用的汇总策略有时间维度和对象维度两种,可以按照时间(天)或者采集对象(网元)来进行汇总。

Reduce的机制来将汇总任务分解成多个Map和Reduce小任务,以解决汇总任务包含表格查询跨库跨表格的问题,让计算节点进行归并被拆分成四个小任务的Task1。

可以根据Map/Reduce的机制来将汇总任务分解成多个Map和Reduce小任务,以解决汇总任务包含表格查询跨库跨表格的问题,图6中给出了发给计算节点,让计算节点进行归并被拆分成四个小任务的Task1。

数据汇总的具体过程为:①计算节点CU接收到Map小任务,先生成临时表,然后执行。②当Master确定所有Map任务完成以后,再发送reduce任务,CU此时执行Reduce操作,汇总中间临时表中的数据,生成用户需要的最终结果集。

5 结论

本文设计了由中心控制节点、计算节点、配置服务节点等构成的海量数据处理平台。通过中心控制节点实现任务的分解与控制,计算节点实现任务计算。使用基于文件格式的方式对网元进行数据采集,利用Map/Reduce的模型进行数据汇总,实现数据的整合。采用本平台能够实现对海量告警信息的捕获和处理,保证告警分析的效率,为电力系统的运维监管提供数据支撑。

参 考 文 献

[1] 丁兆云,贾焰,周斌.微博数据挖掘研究综述[J].计算机研究与发展,2014,51(4):691-706.

[2] 黄斌,许舒人,蒲卫.基于MapReduce的数据挖掘平台设计与实现[J].计算机工程与设计,2013,34(2):495-501.

[3] 朱姣姣,叶猛.多模式匹配及其改进算法在协议识别中的应用[J].电视技术,2012,36(7):60-6.

[4] 陈占芳,王欢,毕琳,冯欣,禹建文.基于OA系统的即时通讯平台关键技术研究与实现[J].长春理工大学学报:自然科学版,2012,5(04):125-129.

猜你喜欢
数据处理分布式
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
基于预处理MUSIC算法的分布式阵列DOA估计
MATLAB在化学工程与工艺实验数据处理中的应用
Matlab在密立根油滴实验数据处理中的应用
西门子 分布式I/O Simatic ET 200AL
家庭分布式储能的发展前景
基于POS AV610与PPP的车辆导航数据处理
依托陆态网的GNSS远程数据处理软件开发