CN102821164B - 一种高效并行分布式数据处理系统 - Google Patents
一种高效并行分布式数据处理系统 Download PDFInfo
- Publication number
- CN102821164B CN102821164B CN201210315625.8A CN201210315625A CN102821164B CN 102821164 B CN102821164 B CN 102821164B CN 201210315625 A CN201210315625 A CN 201210315625A CN 102821164 B CN102821164 B CN 102821164B
- Authority
- CN
- China
- Prior art keywords
- data processing
- data
- thread
- packet
- subsystem
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000013500 data storage Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 2
- 238000003672 processing method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种高效并行分布式数据处理系统。该系统包括一组一级数据处理子系统,以及与一级数据处理子系统级联的一组二级数据子处理系统,每个一级/二级数据处理子系统单独安装于一台主机;每个一级/二级数据处理子系统在启动时均创建一个包含多个数据处理线程的线程池;当数据处理系统接收到新数据包时,将新数据包分配给其中一个一级数据处理子系统;收到新数据包的一级数据处理子系统判断自身各数据处理线程的当前数据处理效率是否均大于或等于预设的效率阈值,如否,则将数据包分配给当前数据处理效率最小的数据处理线程处理;如是,则在二级数据处理子系统中为其分配一个数据处理线程。本发明能实现海量数据实时、高效、并发性处理。
Description
技术领域
本发明涉及一种高效并行分布式数据处理系统,属于计算机及通信技术领域。
背景技术
海量数据是指数据集的大小已经超过传统软件工具在一定时间范围内可以获取、管理、处理的能力。其具有如下特征:
① 数据量大:通常达到TB级的数据;
② 数据类型复杂:海量数据通常不是单一类型数据,而是多种类型数据甚至是远远不断数据流;
③ 多模态数据:对于不同的对象,得到的数据可能是通过不同的方式或角度收集。
现在海量数据处理方法趋于成熟,处理海量数据的方法包含了Bloom filter、Hashing、bit-map、堆、双层桶划分、倒排索引、外排序、trie树等等技术,但这些技术只是从单数据层面给出了处理方法,并不能在实际应用中有效解决海量数据的实际处理情况。例如,MapReduce是google提出的一种软件架构,用于处理大规模数据集的并行运算,是当今最先进的大数据并行处理架构。MapReduce把大数据进行拆分成小块数据,然后通过Map方法进行并行处理,处理结果放入中间文件,reduce函数对Map处理结果的中间文件进行合并,这种分解、读写文件以及合并会消耗一定的计算机资源,占用一定的时间;同时,在数据分配方面,MapReduce通过调度方式进行函数分配,其调度计算的时间较长。
发明内容
本发明所要解决的技术问题在于克服现有技术不足,提供一种能够对海量数据进行更高效处理的高效并行分布式数据处理系统。
本发明具体采用以下技术方案解决上述技术问题。
一种高效并行分布式数据处理系统,包括一组一级数据处理子系统,以及与一级数据处理子系统级联的一组二级数据子处理系统,每个一级/二级数据处理子系统单独安装于一台主机;每个一级/二级数据处理子系统在启动时均创建一个包含多个数据处理线程的线程池;当数据处理系统接收到新数据包时,将新数据包分配给其中一个一级数据处理子系统;收到新数据包的一级数据处理子系统判断自身线程池中的各数据处理线程的当前数据处理效率是否均大于或等于预设的效率阈值,
如否,则将数据包分配给当前数据处理效率最小的数据处理线程进行处理,所述数据处理线程的当前数据处理效率 按照下式计算:
其中,n为该数据处理线程当前已处理数据包个数,为该数据处理线程处理第n个数据包所耗费时间;
如是,则在二级数据处理子系统中为该数据包分配一个数据处理线程。
优选地,所述一级数据处理子系统在启动时,开启一个数据接收线程、一个数据分发线程,一个数据转发线程,以及一个状态采集器,并创建包含多个数据处理线程的线程池,同时开辟一段接收数据动态存储区RBM与一段动态数据存储区ABM,并为线程池中的每一个数据处理线程开辟一个动态存储区SM;数据接收线程用于接收数据包并将接收到的数据包存入接收数据动态存储区RBM;数据分发线程对接收数据动态存储区RBM的数据包进行循环读取,循环检测线程池中各数据处理线程的当前数据处理效率,并根据检测结果对读取的数据包进行分配:如线程池中各数据处理线程的当前数据处理效率均大于或等于预设的效率阈值,则将数据包发送至数据转发线程,否则,将数据包存入当前数据处理效率最小的数据处理线程的动态存储区SM;状态采集器负责定时采集各二级数据处理子系统的性能状态数据;数据转发线程根据状态采集器所采集的数据在二级数据处理子系统中为接收到的数据包分配一个数据处理线程;二级数据处理子系统完成所分配数据包的处理后,将处理结果反馈至发送该数据包的一级数据处理子系统的动态数据存储区ABM中。
采用上述技术方案时,一级数据处理子系统在为超过自身负荷而无法处理的数据包分配二级数据处理子系统时,可以采用最简单的随机选取的方式,也可根据现有的各种性能评价指标选择性能最好的二级数据处理子系统,本发明优选以下两种方案:
优选方案一:
所述状态采集器定时采集的性能状态数据是指各二级数据处理子系统中各数据处理线程的当前数据处理效率;数据转发线程根据状态采集器所采集的数据,将接收到的数据包分配给二级数据处理子系统中当前数据处理效率最小的数据处理线程。
优选方案二:
所述状态采集器定时采集的性能状态数据是指各二级数据处理子系统中各数据处理线程的当前待处理数据包个数、当前已处理数据包个数以及当前数据处理效率;数据转发线程根据状态采集器所采集的数据在二级数据处理子系统中为接收到的数据包分配一个数据处理线程,具体按照以下方法:
判断是否存在当前待处理数据包个数C为0或者当前已处理数据包个数n为0的数据处理线程,如是,则将数据包分配给其中任意一个数据处理线程;如否,则将数据包分配给相对空闲率最高的数据处理线程,所述数据处理线程的相对空闲率按照以下公式计算:
式中,为相对空闲率;为该数据处理线程当前待处理数据包个数;为该数据处理线程的当前数据处理效率。
本发明采用两层子系统级联的系统结构,对数据进行多线程并行处理,并以动态变化的当前数据处理效率作为数据处理线程的负荷评价指标,选择负荷较低的数据处理线程;当一级数据处理子系统的各数据处理线程负荷均达到一定程度时,则从级联的二级数据处理子系统中选择当前数据处理效率最低或者相对空闲率最高的数据处理线程来对数据进行处理。本发明对于海量数据的分析处理,具有极高的性能与效率,真正实现了海量数据实时、高效、并发性处理。
附图说明
图1为本发明数据处理系统的结构示意图;
图2为本发明数据处理系统的一级数据处理子系统的工作流程示意图;
图3为本发明数据处理系统的二级数据处理子系统的工作流程示意图。
具体实施方式
下面结合附图对本发明的技术方案进行详细说明:
本发明的高效并行分布式数据处理系统如图1所示,包括分别部署在N台主机上的N个一级数据处理子系统,以及与一级数据处理子系统级联的分别部署在M台主机上的M个二级数据处理子系统(N、M均为大于1的自然数)。
一级数据处理子系统启动时,开启一个数据接收线程TRR、创建包含多个数据处理线程D的线程池、一个数据分发线程TA、一个数据转发线程TS以及一个状态采集器,同时开辟一段接收数据动态存储区RBM与动态数据存储区ABM,并且为每一个数据处理线程D开辟一段动态存储区SM。数据接收线程TRR只负责接收数据,并将数据存入接收数据动态存储区RBM;数据处理线程D负责处理数据;状态采集器定时采集各个级联的二级数据处理子系统的性能状态数据,然后把性能状态数据存储在系统内存中。数据分发线程TA对接收数据动态存储区RBM的数据包进行循环读取,循环检测线程池中各数据处理线程D的当前数据处理效率,并根据检测结果对读取的数据包进行分配:如线程池中各数据处理线程的当前数据处理效率均大于或等于预设的效率阈值M,说明本台机器上部署的一级数据处理子系统的系统处理性能达到饱和,则将数据包发送至数据转发线程TS,否则,将数据包存入当前数据处理效率最小的数据处理线程的动态存储区SM。其中数据处理线程的当前数据处理效率按照下式计算:
其中,n为该数据处理线程当前已处理数据包个数,为该数据处理线程处理第n个数据包所耗费时间。
数据转发线程TS根据状态采集器所采集的数据在二级数据处理子系统中为接收到的数据包分配一个数据处理线程;二级数据处理子系统完成所分配数据包的处理后,将处理结果反馈至发送该数据包的一级数据处理子系统的动态数据存储区ABM中。
二级数据处理子系统启动时,开启一个数据接收代理Agent、创建包含多个数据处理线程的线程池、一个数据反馈线程TAR、一个数据分发线程TA′,以及一个性能状态计算器,同时开辟一段接收数据动态存储区RBM′与一段动态数据存储区ABM′,并且为每一个数据处理线程D开辟一段动态存储区SM。数据接收代理Agent只负责接收一级数据处理子系统转发的数据包,并放数据包存入接收数据动态存储区RBM′;数据分发线程TA′对接收数据动态存储区RBM′中的数据包进行读取,并将读取的数据包存入当前数据处理效率最小或者相对空闲率最大的数据处理线程的动态存储区SM中。当前数据处理效率的计算方法上文已给出,此处不再赘述。数据处理线程的相对空闲率按照以下公式计算:
式中,为相对空闲率;为该数据处理线程当前待处理数据包个数(亦即该数据处理线程的动态存储区SM中当前存储的数据包个数);为该数据处理线程的当前数据处理效率。
上式中,当前待处理数据包个数与当前数据处理效率不能为0,否则上式无意义,而实际上这两者均可能为0,为此,可规定:当前待处理数据包个数C为0或者当前已处理数据包个数n为0(即当前数据处理效率为0)时,其相对空闲率最大。这样,在根据相对空闲率为数据包分配数据处理线程时,首先判断是否存在当前待处理数据包个数C为0或者当前已处理数据包个数n为0的数据处理线程,如是,则将数据包分配给其中任意一个数据处理线程;如否,则将数据包分配给相对空闲率最高的数据处理线程。数据处理线程处理数据后,把处理结果放入动态数据存储区ABM′中;数据反馈线程TAR循环检测动态数据存储区ABM′,把其中的处理结果反馈到对应的一级数据处理子系统的动态数据存储区ABM中。
性能状态计算器定时计算并存储其所在的二级数据处理子系统的各数据处理线程的当前数据处理效率,或者当前待处理数据包个数、当前已处理数据包个数以及当前数据处理效率;一级数据处理子系统的状态采集器通过轮询各二级数据处理子系统的性能状态计算器,获得所级联的各二级数据处理子系统性能状态数据,数据转发线程TS即可将数据包发送给性能状态最优的二级数据处理子系统。
图2、图3分别显示了本发明数据处理系统中一级、二级数据处理子系统的数据处理流程。
Claims (4)
1.一种并行分布式数据处理系统,其特征在于,包括一组一级数据处理子系统,以及与一级数据处理子系统级联的一组二级数据处理子系统,每个一级/二级数据处理子系统单独安装于一台主机;每个一级/二级数据处理子系统在启动时均创建一个包含多个数据处理线程的线程池;当数据处理系统接收到新数据包时,将新数据包分配给其中一个一级数据处理子系统;收到新数据包的一级数据处理子系统判断自身线程池中的各数据处理线程的当前数据处理效率是否均大于或等于预设的效率阈值,
如否,则将数据包分配给当前数据处理效率最小的数据处理线程进行处理,所述数据处理线程的当前数据处理效率 按照下式计算:
其中,n为该数据处理线程当前已处理数据包个数,为该数据处理线程处理第n个数据包所耗费时间;
如是,则在二级数据处理子系统中为该数据包分配一个数据处理线程。
2.如权利要求1所述并行分布式数据处理系统,其特征在于,所述一级数据处理子系统在启动时,开启一个数据接收线程、一个数据分发线程,一个数据转发线程,以及一个状态采集器,并创建包含多个数据处理线程的线程池,同时开辟一段接收数据动态存储区RBM与一段动态数据存储区ABM,并为线程池中的每一个数据处理线程开辟一个动态存储区SM;数据接收线程用于接收数据包并将接收到的数据包存入接收数据动态存储区RBM;数据分发线程对接收数据动态存储区RBM的数据包进行循环读取,循环检测线程池中各数据处理线程的当前数据处理效率,并根据检测结果对读取的数据包进行分配:如线程池中各数据处理线程的当前数据处理效率均大于或等于预设的效率阈值,则将数据包发送至数据转发线程,否则,将数据包存入当前数据处理效率最小的数据处理线程的动态存储区SM;状态采集器负责定时采集各二级数据处理子系统的性能状态数据;数据转发线程根据状态采集器所采集的数据在二级数据处理子系统中为接收到的数据包分配一个数据处理线程;二级数据处理子系统完成所分配数据包的处理后,将处理结果反馈至发送该数据包的一级数据处理子系统的动态数据存储区ABM中。
3.如权利要求2所述并行分布式数据处理系统,其特征在于,所述状态采集器定时采集的性能状态数据是指各二级数据处理子系统中各数据处理线程的当前数据处理效率;数据转发线程根据状态采集器所采集的数据,将接收到的数据包分配给二级数据处理子系统中当前数据处理效率最小的数据处理线程。
4.如权利要求2所述并行分布式数据处理系统,其特征在于,所述状态采集器定时采集的性能状态数据是指各二级数据处理子系统中各数据处理线程的当前待处理数据包个数、当前已处理数据包个数以及当前数据处理效率;数据转发线程根据状态采集器所采集的数据在二级数据处理子系统中为接收到的数据包分配一个数据处理线程,具体按照以下方法:
判断是否存在当前待处理数据包个数C为0或者当前已处理数据包个数n为0的数据处理线程,如是,则将数据包分配给其中任意一个数据处理线程;如否,则将数据包分配给相对空闲率最高的数据处理线程,所述数据处理线程的相对空闲率按照以下公式计算:
式中,为相对空闲率;为该数据处理线程当前待处理数据包个数;为该数据处理线程的当前数据处理效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210315625.8A CN102821164B (zh) | 2012-08-31 | 2012-08-31 | 一种高效并行分布式数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210315625.8A CN102821164B (zh) | 2012-08-31 | 2012-08-31 | 一种高效并行分布式数据处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102821164A CN102821164A (zh) | 2012-12-12 |
CN102821164B true CN102821164B (zh) | 2014-10-22 |
Family
ID=47305016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210315625.8A Expired - Fee Related CN102821164B (zh) | 2012-08-31 | 2012-08-31 | 一种高效并行分布式数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102821164B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905225B (zh) * | 2012-12-25 | 2017-09-05 | 中国移动通信集团浙江有限公司 | 一种服务控制方法、服务控制装置以及服务系统 |
CN103369042B (zh) * | 2013-07-10 | 2016-03-30 | 中国人民解放军国防科学技术大学 | 一种数据处理方法和装置 |
CN103501509B (zh) * | 2013-09-04 | 2016-08-17 | 大唐移动通信设备有限公司 | 一种均衡无线网络控制器负载的方法及装置 |
CN103647790B (zh) * | 2013-12-24 | 2017-01-25 | 常州工学院 | 一种超大文件协议分析统计方法 |
CN104615684B (zh) * | 2015-01-22 | 2018-06-12 | 北京彩云动力教育科技有限公司 | 一种海量数据通信并发处理方法及系统 |
CN107341050B (zh) * | 2016-04-28 | 2022-12-27 | 北京京东尚科信息技术有限公司 | 基于动态线程池的服务处理方法和装置 |
CN106528299B (zh) * | 2016-09-23 | 2019-12-03 | 北京华泰德丰技术有限公司 | 数据处理方法及装置 |
CN107392484A (zh) * | 2017-07-29 | 2017-11-24 | 合肥千奴信息科技有限公司 | 一种大数据处理装置及方法 |
CN110019339B (zh) * | 2017-11-20 | 2021-11-30 | 北京京东尚科信息技术有限公司 | 一种数据查询方法和系统 |
CN109239028A (zh) * | 2018-07-26 | 2019-01-18 | 海南大学 | 一种海南鱼体耐药性检测方法 |
CN109709806B (zh) * | 2018-12-27 | 2022-07-19 | 杭州铭展网络科技有限公司 | 一种自适应数据采集系统 |
CN112100146B (zh) * | 2020-09-21 | 2021-06-29 | 重庆紫光华山智安科技有限公司 | 一种高效的纠删分布式存储写入方法、系统、介质及终端 |
CN113900886A (zh) * | 2021-09-06 | 2022-01-07 | 浪潮软件股份有限公司 | 一种异常日志监控方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1786917A (zh) * | 2004-12-07 | 2006-06-14 | 国际商业机器公司 | 在多处理器数据处理系统中借入线程作为负载平衡的形式 |
CN102624889A (zh) * | 2012-03-06 | 2012-08-01 | 河海大学 | 一种基于接收与处理分离的海量数据并发性处理方法 |
-
2012
- 2012-08-31 CN CN201210315625.8A patent/CN102821164B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1786917A (zh) * | 2004-12-07 | 2006-06-14 | 国际商业机器公司 | 在多处理器数据处理系统中借入线程作为负载平衡的形式 |
CN102624889A (zh) * | 2012-03-06 | 2012-08-01 | 河海大学 | 一种基于接收与处理分离的海量数据并发性处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102821164A (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102821164B (zh) | 一种高效并行分布式数据处理系统 | |
CN104090847B (zh) | 一种固态存储设备的地址分配方法 | |
CN105653524B (zh) | 一种数据存储方法、装置和系统 | |
CN102385554B (zh) | 重复数据删除系统的优化方法 | |
CN104023088B (zh) | 一种应用于分布式文件系统的存储服务器选择方法 | |
CN103327072B (zh) | 一种集群负载均衡的方法及其系统 | |
CN104731799B (zh) | 内存数据库管理装置 | |
CN103078933B (zh) | 一种确定数据迁移时机的方法和装置 | |
US20130166749A1 (en) | Optimization Of Resource Utilization In A Collection Of Devices | |
CN103412884B (zh) | 一种异构存储介质下嵌入式数据库的管理方法 | |
CN104219318A (zh) | 一种分布式文件存储系统及方法 | |
CN106371916B (zh) | 一种存储系统io线程优化方法及其装置 | |
CN105975398A (zh) | 一种内存碎片管理方法 | |
CN102279810A (zh) | 一种网络存储服务器及其缓存数据的方法 | |
CN101373445A (zh) | 一种内存调度方法及装置 | |
CN104239149A (zh) | 一种服务端多线程并行数据处理方法及负载均衡方法 | |
CN102866922B (zh) | 一种海量数据多线程并行处理中的负载均衡方法 | |
CN101827120A (zh) | 一种集群存储方法及系统 | |
CN105867998A (zh) | 一种虚拟机集群部署算法 | |
CN103823640B (zh) | 一种Flash存储器的高效率存储方法 | |
Shu-Jun et al. | Optimization and research of hadoop platform based on fifo scheduler | |
CN104702654A (zh) | 基于视频云存储系统的存储与提取性能平衡的方法与装置 | |
CN104050189B (zh) | 页面共享处理方法及装置 | |
CN114860449B (zh) | 数据处理方法、装置、设备和存储介质 | |
CN106569728B (zh) | 多磁盘阵列raid共享写缓存的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141022 Termination date: 20210831 |