CN113608858A - 一种基于MapReduce架构的数据同步用块任务执行系统 - Google Patents
一种基于MapReduce架构的数据同步用块任务执行系统 Download PDFInfo
- Publication number
- CN113608858A CN113608858A CN202110928199.4A CN202110928199A CN113608858A CN 113608858 A CN113608858 A CN 113608858A CN 202110928199 A CN202110928199 A CN 202110928199A CN 113608858 A CN113608858 A CN 113608858A
- Authority
- CN
- China
- Prior art keywords
- module
- parallel
- data
- data synchronization
- task
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 53
- 238000004364 calculation method Methods 0.000 claims abstract description 37
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000004891 communication Methods 0.000 claims abstract description 16
- 238000013461 design Methods 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 38
- 230000002776 aggregation Effects 0.000 claims description 21
- 238000004220 aggregation Methods 0.000 claims description 21
- 238000004422 calculation algorithm Methods 0.000 claims description 21
- 238000009826 distribution Methods 0.000 claims description 19
- 238000011156 evaluation Methods 0.000 claims description 14
- 239000012634 fragment Substances 0.000 claims description 10
- 238000003491 array Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000013467 fragmentation Methods 0.000 claims description 4
- 238000006062 fragmentation reaction Methods 0.000 claims description 4
- 230000001133 acceleration Effects 0.000 claims description 3
- 238000007635 classification algorithm Methods 0.000 claims description 3
- 238000005520 cutting process Methods 0.000 claims description 3
- 238000007405 data analysis Methods 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 238000003064 k means clustering Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 230000009467 reduction Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000004904 shortening Methods 0.000 claims description 3
- 238000009966 trimming Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 2
- 238000003860 storage Methods 0.000 abstract description 8
- 238000004458 analytical method Methods 0.000 abstract description 3
- 230000006872 improvement Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据同步技术领域,具体地说,涉及一种基于MapReduce架构的数据同步用块任务执行系统。包括基础架构单元、数据处理单元、数据同步单元和任务并行单元;基础架构单元用于搭建、管理支持系统运行的分布式运算程序的编程框架;数据处理单元用于完成数据的函数计算处理过程;数据同步单元用于完成数据同步;任务并行单元用于实现多个任务的并行处理过程。本发明设计可以对海量的大规模数据进行快速分析处理,提高数据处理的效率;可以自动进行数据的分布存储、数据通信、容错处理等的并行计算,减少软件开发人员的负担;可以识别和调用数据同步方法及任务并行方法,实现不同程序间的任务并行执行,并可以对不同程序任务之间的并行程度进行评估。
Description
技术领域
本发明涉及数据同步技术领域,具体地说,涉及一种基于MapReduce架构的数据同步用块任务执行系统。
背景技术
关于数据同步主要包括两个层面的同步,一是通过后台程序编码实现数据同步,二是直接作用于数据库,在数据库层面实现数据的同步。其中,数据库层面的数据库同步主要有三种方式:通过发布/订阅的方式实现同步,通过SQL JOB方式实现数据同步,通过Service Broker 消息队列的方式实现数据同步。在海量的数据分析处理过程中,一种、两种或两种以上的数据同步方法可以同时进行,每种方法对应一个或多个任务,这些任务在同时进行时,比较容易出现执行混乱、数据错乱的情况。而MapRedrce是一个分布式运算程序的编程框架,其核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。如果能够以MapRedrce架构为基础,则可以支持多任务顺畅的同步执行,从而可以更好地实现数据同步。然而,目前却没有较为完善的基于MapRedrce架构的数据同步用块任务执行系统。
发明内容
本发明的目的在于提供了一种基于MapReduce架构的数据同步用块任务执行系统,以解决上述背景技术中提出的问题。
为实现上述技术问题的解决,本发明的目的之一在于,提供了一种基于MapReduce架构的数据同步用块任务执行系统,包括
基础架构单元、数据处理单元、数据同步单元和任务并行单元;所述基础架构单元、所述数据处理单元、所述数据同步单元与所述任务并行单元依次通过网络通信连接;所述基础架构单元用于搭建、管理支持系统运行的分布式运算程序的编程框架并在此基础上进行任务调度管理操作;所述数据处理单元用于以MapReduce编程步骤为基础完成数据的函数计算处理过程;所述数据同步单元用于管理并选择最优适用的方法完成数据同步;所述任务并行单元用于管理、选择最优适用的方法实现多个任务的并行处理过程并对并行程度进行评估;
所述基础架构单元包括硬件平台模块、逻辑框架模块、用户模型模块和任务调度模块;
所述数据处理单元包括分片输入模块、函数计算模块、聚合分发模块和集合输出模块;
所述数据同步单元包括发布订阅模块、SQL JOB模块、消息队列模块和方式选择模块;
所述任务并行单元包括位级并行模块、指令级并行模块、线程级并行模块和并行评估模块;
该基于MapReduce架构的数据同步用块任务执行系统中,先搭建包括硬件平台、逻辑框架、用户模型等的基础网络架构,在此基础上构建由全局任务调度中心、若干数据中心、客户端组成的任务调度模型,实现系统的全局任务调度,再按照MapReduce的编程步骤,分别对数据密集型和计算密集型任务进行并行执行处理,实现对海量的数据进行分析的过程,然后按照数据分析结果,调用最优适用的数据同步方法进行数据同步,最后自动识别、调用对应方法进行多个程序任务的并行执行,并对并行度进行评估以作为调整任务执行方式的调整依据。
作为本技术方案的进一步改进,所述硬件平台模块、所述逻辑框架模块、所述用户模型模块与所述任务调度模块依次通过网络通信连接且并列运行;所述硬件平台模块用于采用市场上现成的普通PC或性能较高的刀架或机架式服务器,构成一个包含数千个节点的分布式并行计算集群,从而构建基于集群的高性能并行计算平台作为系统运行的硬件层;所述逻辑框架模块用于提供并管理一个能自动完成任务的并行化处理、自动划分计算数据和计算任务的并行计算机软件架构,可以在集群节点上自动分配和执行子任务以及收集计算结果,从而搭建了并行程序开发与运行框架作为系统的逻辑层;所述用户模型模块用于借助函数式Lisp语言中的设计思想提供一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行计算任务,构建并行程序设计模型与方法作为系统的用户层;所述任务调度模块用于构建并管理跨数据中心的任务调度结构。
其中,逻辑层框架可以将数据分布存储、数据通信、容错处理等并行计算中的很多复杂细节交由系统负责处理,大大减少了软件开发人员的负担。
其中,用户层可以提供完整的并行编程接口,以完成大规模的数据处理。
作为本技术方案的进一步改进,所述任务调度模块包括调度中心模块、数据中心模块和客户端模块;所述调度中心模块、所述数据中心模块与所述客户端模块依次通过广域网连接;所述调度中心模块用于构建一个全局任务调度中心以接收客户端提交的MapReduce任务请求,按照预设的选择算法从各数据中心中选择资源和性能满足要求的任务数据,并按照预设任务分派算法将任务分派至资源管理器进行任务执行操作;所述数据中心模块由一个资源管理器与多个节点管理器构成,资源管理器用于向全局任务调度中心注册并定时汇报本数据中心状态信息;所述客户端模块用于实时从全局任务调度中心获取MapReduce任务执行信息。
作为本技术方案的进一步改进,所述分片输入模块的信号输出端与所述函数计算模块的信号输入端连接,所述函数计算模块的信号输出端与所述聚合分发模块的信号输入端连接,所述聚合分发模块的信号输出端与所述集合输出模块的信号输入端连接;所述分片输入模块用于将待处理的数据进行分片,并将每个数据切片分别输入到map函数中;所述函数计算模块用于通过map函数计算处理输入的子数据,即将有用的数据映射到键值对上,并产生键值对作为中间结果输出;所述聚合分发模块用于通过框架将所有节点的中间结果键作聚合处理,并将键相同的数据分发给reduce函数处理,即将每个map输出的键合在一起,遇到相同的键则合并成一个键值对,将它们的值做成数组并排序以减少归约;所述集合输出模块用于通过reduce函数处理键和对应值得集合,处理合并后的键值对,将键的数组提取出来进行计算,进一步减少归约的数组,并将产生的新的键值对作为最终输出。
其中,MapReduce操作数据的最小单位是键值对。
作为本技术方案的进一步改进,所述分片输入模块采用切边法,其计算表达式如下:
代表边被切割后的代价函数;那么,可将优化目标定义为:
即在每台机器被分发到的节点尽可能均匀的条件约束下,求切割边最少的方法;
其中,代表所有的节点被p台机器均分所得数值,代表不平衡调节因子,通过调节
λ的大小可以控制节点分配的均匀度,当其值为1时,要求完全均分,其值越大,允许的不均
衡程度越高。
作为本技术方案的进一步改进,所述聚合分发模块采用K-均值聚类算法,该算法步骤如下:
S1、选K个初始聚类中心,Z1 I,Z2 I,∧ZK I,其中,(1,2,...,k)为寻找聚类中心的迭代运算的次序号;
S2、逐个将需分类模式样本{X}按最小距离准则分配给K个聚类中心中的某一个Zj (1);对所有的i≠j,j=1,2,...,K,如果Z1 I,Z2 I,∧ZK I,则X∈Sj k,其中,k为迭代运算的次序号,第一次迭代k=1,Sj表示第j个聚类,其聚类中心为Zj;
S3、计算各个聚类中心的新的向量值Zj (k+1),j=1,2,...,K,求各聚类域中所包含样本的均值向量:
其中,Nj为第j个聚类域Sj中所包含的样本个数;
其中,以均值向量作为新的聚类中心,可使如下聚类准则函数J最小:
S4、若Zj (k+1)≠Zj (k+1),j=1,2,...,K,则返回S2,将模式样本逐个重新分类,重复迭代运算;若Zj (k+1)=Zj (k+1),j=1,2,...,K,则算法收敛,计算结束。
作为本技术方案的进一步改进,所述发布订阅模块、所述SQL JOB模块与所述消息队列模块依次通过网络通信连接且并列运行,所述发布订阅模块、所述SQL JOB模块、所述消息队列模块的信号输出端与所述方式选择模块的信号输入端连接;所述发布订阅模块用于在不用编写任何代码的基础上,通过Sql Server自带的发布/订阅数据库备份机制快速地实现数据的备份同步;所述SQL JOB模块通过Sql Job定时作业的方式实现数据同步,即用于通过目标服务器和源服务器的连接,通过编写Sql语句从源服务器中读取数据并更新到目标服务器;所述消息队列模块用于通过SQL Server Service Broker为SQL Server提供队列和可靠的消息传递及功能强大的异步编程模型,从而提供可靠的消息传递服务,可以缩短交互式响应时间以增加应用程序的总吞吐量,进而实现数据同步;所述方式选择模块用于根据数据的来源和类型选择最优适用的数据同步方法。
作为本技术方案的进一步改进,所述方式选择模块采用作业优先级的算法,其计算公式为:
作为本技术方案的进一步改进,所述位级并行模块、所述指令级并行模块与所述线程级并行模块依次通过网络通信连接且并列运行,所述位级并行模块、所述指令级并行模块、所述线程级并行模块的信号输出端与所述并行评估模块的信号输入端连接;所述位级并行模块用于通过快速的包分类算法进行任务或算法的并行执行操作;所述指令级并行模块用于以细粒度并行方法为基础,其并行性由处理器硬件和编译程序自动识别和利用,以实现进程或线程间的并行;所述线程级并行模块用于由多处理器支持多个线程同时并行执行;所述并行评估模块用于并行执行的各程序之间的并行程度进行评估。
其中,支持线程级并行的多处理器体系结构包括对称共享存储器多处理器和分布式共享存储。
作为本技术方案的进一步改进,所述并行评估模块中,因程序能得到多大并行加速依赖于该程序有多少可并行计算的比例,则采用Amdahl定律来评估程序的可并行度,其公式为:
其中,S为加速比,P为程序可并行比例,N为处理器数目。
其中,根据Amdahl定律:一个并行程序可加速程度是有限制的,并非可无限加速,并非处理器越多越好。
本发明的目的之二在于,提供了一种基于MapReduce架构的数据同步用块任务执行系统的运行装置,包括处理器、存储器以及存储在存储器中并在处理器上运行的计算机程序,处理器用于执行计算机程序时实现上述任一的基于MapReduce架构的数据同步用块任务执行系统。
本发明的目的之三在于,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一的基于MapReduce架构的数据同步用块任务执行系统。
与现有技术相比,本发明的有益效果:
1.该基于MapReduce架构的数据同步用块任务执行系统以MapReduce架构为基础,进行多任务程序并行的编程,可以对海量的大规模数据进行快速分析处理,并针对数据密集型和计算密集型的数据任务进行分别处理,快速提取数据特征并得到分析结果,提高数据处理的效率;
2.该基于MapReduce架构的数据同步用块任务执行系统可以自动进行数据的分布存储、数据通信、容错处理等的并行计算,减少软件开发人员的负担,减轻编程、编写代码的工作量;
3.该基于MapReduce架构的数据同步用块任务执行系统可以自动识别和调用数据同步方法及任务并行方法,实现不同程序间的任务并行执行,并可以对不同程序任务之间的并行程度进行评估,还可依据评估结果来调整任务执行系统的运行方式。
附图说明
图1为本发明的示例性产品运行流程框图;
图2为本发明的整体系统装置结构图;
图3为本发明的局部系统装置结构图之一;
图4为本发明的局部系统装置结构图之二;
图5为本发明的局部系统装置结构图之三;
图6为本发明的局部系统装置结构图之四;
图7为本发明的局部系统装置结构图之五;
图8为本发明的示例性电子计算机装置结构示意图。
图中各个标号意义为:
100、基础架构单元;101、硬件平台模块;102、逻辑框架模块;103、用户模型模块;104、任务调度模块;1041、调度中心模块;1042、数据中心模块;1043、客户端模块;
200、数据处理单元;201、分片输入模块;202、函数计算模块;203、聚合分发模块;204、集合输出模块;
300、数据同步单元;301、发布订阅模块;302、SQL JOB模块;303、消息队列模块;304、方式选择模块;
400、任务并行单元;401、位级并行模块;402、指令级并行模块;403、线程级并行模块;404、并行评估模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1-图8所示,本实施例提供了一种基于MapReduce架构的数据同步用块任务执行系统,包括
基础架构单元100、数据处理单元200、数据同步单元300和任务并行单元400;基础架构单元100、数据处理单元200、数据同步单元300与任务并行单元400依次通过网络通信连接;基础架构单元100用于搭建、管理支持系统运行的分布式运算程序的编程框架并在此基础上进行任务调度管理操作;数据处理单元200用于以MapReduce编程步骤为基础完成数据的函数计算处理过程;数据同步单元300用于管理并选择最优适用的方法完成数据同步;任务并行单元400用于管理、选择最优适用的方法实现多个任务的并行处理过程并对并行程度进行评估;
基础架构单元100包括硬件平台模块101、逻辑框架模块102、用户模型模块103和任务调度模块104;
数据处理单元200包括分片输入模块201、函数计算模块202、聚合分发模块203和集合输出模块204;
数据同步单元300包括发布订阅模块301、SQL JOB模块302、消息队列模块303和方式选择模块304;
任务并行单元400包括位级并行模块401、指令级并行模块402、线程级并行模块403和并行评估模块404;
该基于MapReduce架构的数据同步用块任务执行系统中,先搭建包括硬件平台、逻辑框架、用户模型等的基础网络架构,在此基础上构建由全局任务调度中心、若干数据中心、客户端组成的任务调度模型,实现系统的全局任务调度,再按照MapReduce的编程步骤,分别对数据密集型和计算密集型任务进行并行执行处理,实现对海量的数据进行分析的过程,然后按照数据分析结果,调用最优适用的数据同步方法进行数据同步,最后自动识别、调用对应方法进行多个程序任务的并行执行,并对并行度进行评估以作为调整任务执行方式的调整依据。
本实施例中,硬件平台模块101、逻辑框架模块102、用户模型模块103与任务调度模块104依次通过网络通信连接且并列运行;硬件平台模块101用于采用市场上现成的普通PC或性能较高的刀架或机架式服务器,构成一个包含数千个节点的分布式并行计算集群,从而构建基于集群的高性能并行计算平台作为系统运行的硬件层;逻辑框架模块102用于提供并管理一个能自动完成任务的并行化处理、自动划分计算数据和计算任务的并行计算机软件架构,可以在集群节点上自动分配和执行子任务以及收集计算结果,从而搭建了并行程序开发与运行框架作为系统的逻辑层;用户模型模块103用于借助函数式Lisp语言中的设计思想提供一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行计算任务,构建并行程序设计模型与方法作为系统的用户层;任务调度模块104用于构建并管理跨数据中心的任务调度结构。
其中,逻辑层框架可以将数据分布存储、数据通信、容错处理等并行计算中的很多复杂细节交由系统负责处理,大大减少了软件开发人员的负担。
其中,用户层可以提供完整的并行编程接口,以完成大规模的数据处理。
进一步地,任务调度模块104包括调度中心模块1041、数据中心模块1042和客户端模块1043;调度中心模块1041、数据中心模块1042与客户端模块1043依次通过广域网连接;调度中心模块1041用于构建一个全局任务调度中心以接收客户端提交的MapReduce任务请求,按照预设的选择算法从各数据中心中选择资源和性能满足要求的任务数据,并按照预设任务分派算法将任务分派至资源管理器进行任务执行操作;数据中心模块1042由一个资源管理器与多个节点管理器构成,资源管理器用于向全局任务调度中心注册并定时汇报本数据中心状态信息;客户端模块1043用于实时从全局任务调度中心获取MapReduce任务执行信息。
本实施例中,分片输入模块201的信号输出端与函数计算模块202的信号输入端连接,函数计算模块202的信号输出端与聚合分发模块203的信号输入端连接,聚合分发模块203的信号输出端与集合输出模块204的信号输入端连接;分片输入模块201用于将待处理的数据进行分片,并将每个数据切片分别输入到map函数中;函数计算模块202用于通过map函数计算处理输入的子数据,即将有用的数据映射到键值对上,并产生键值对作为中间结果输出;聚合分发模块203用于通过框架将所有节点的中间结果键作聚合处理,并将键相同的数据分发给reduce函数处理,即将每个map输出的键合在一起,遇到相同的键则合并成一个键值对,将它们的值做成数组并排序以减少归约;集合输出模块204用于通过reduce函数处理键和对应值得集合,处理合并后的键值对,将键的数组提取出来进行计算,进一步减少归约的数组,并将产生的新的键值对作为最终输出。
其中,MapReduce操作数据的最小单位是键值对。
具体地,分片输入模块201采用切边法,其计算表达式如下:
代表边被切割后的代价函数;那么,可将优化目标定义为:
即在每台机器被分发到的节点尽可能均匀的条件约束下,求切割边最少的方法;
其中,代表所有的节点被p台机器均分所得数值,代表不平衡调节因子,通过调节
λ的大小可以控制节点分配的均匀度,当其值为1时,要求完全均分,其值越大,允许的不均
衡程度越高。
具体地,聚合分发模块203采用K-均值聚类算法,该算法步骤如下:
S1、选K个初始聚类中心,Z1 I,Z2 I,∧ZK I,其中,(1,2,...,k)为寻找聚类中心的迭代运算的次序号;
S2、逐个将需分类模式样本{X}按最小距离准则分配给K个聚类中心中的某一个Zj (1);对所有的i≠j,j=1,2,...,K,如果Z1 I,Z2 I,∧ZK I,则X∈Sj k,其中,k为迭代运算的次序号,第一次迭代k=1,Sj表示第j个聚类,其聚类中心为Zj;
S3、计算各个聚类中心的新的向量值Zj (k+1),j=1,2,...,K,求各聚类域中所包含样本的均值向量:
其中,Nj为第j个聚类域Sj中所包含的样本个数;
其中,以均值向量作为新的聚类中心,可使如下聚类准则函数J最小:
S4、若Zj (k+1)≠Zj (k+1),j=1,2,...,K,则返回S2,将模式样本逐个重新分类,重复迭代运算;若Zj (k+1)=Zj (k+1),j=1,2,...,K,则算法收敛,计算结束。
本实施例中,发布订阅模块301、SQL JOB模块302与消息队列模块303依次通过网络通信连接且并列运行,发布订阅模块301、SQL JOB模块302、消息队列模块303的信号输出端与方式选择模块304的信号输入端连接;发布订阅模块301用于在不用编写任何代码的基础上,通过Sql Server自带的发布/订阅数据库备份机制快速地实现数据的备份同步;SQLJOB模块302通过Sql Job定时作业的方式实现数据同步,即用于通过目标服务器和源服务器的连接,通过编写Sql语句从源服务器中读取数据并更新到目标服务器;消息队列模块303用于通过SQL Server Service Broker为SQL Server提供队列和可靠的消息传递及功能强大的异步编程模型,从而提供可靠的消息传递服务,可以缩短交互式响应时间以增加应用程序的总吞吐量,进而实现数据同步;方式选择模块304用于根据数据的来源和类型选择最优适用的数据同步方法。
具体地,方式选择模块304采用作业优先级的算法,其计算公式为:
本实施例中,位级并行模块401、指令级并行模块402与线程级并行模块403依次通过网络通信连接且并列运行,位级并行模块401、指令级并行模块402、线程级并行模块403的信号输出端与并行评估模块404的信号输入端连接;位级并行模块401用于通过快速的包分类算法进行任务或算法的并行执行操作;指令级并行模块402用于以细粒度并行方法为基础,其并行性由处理器硬件和编译程序自动识别和利用,以实现进程或线程间的并行;线程级并行模块403用于由多处理器支持多个线程同时并行执行;并行评估模块404用于并行执行的各程序之间的并行程度进行评估。
其中,支持线程级并行的多处理器体系结构包括对称共享存储器多处理器和分布式共享存储。
具体地,并行评估模块404中,因程序能得到多大并行加速依赖于该程序有多少可并行计算的比例,则采用Amdahl定律来评估程序的可并行度,其公式为:
其中,S为加速比,P为程序可并行比例,N为处理器数目。
其中,根据Amdahl定律:一个并行程序可加速程度是有限制的,并非可无限加速,并非处理器越多越好。
如图8所示,本实施例还提供了一种基于MapReduce架构的数据同步用块任务执行系统的运行装置,该装置包括处理器、存储器以及存储在存储器中并在处理器上运行的计算机程序。
处理器包括一个或一个以上处理核心,处理器通过总线与存储器相连,存储器用于存储程序指令,处理器执行存储器中的程序指令时实现上述的基于MapReduce架构的数据同步用块任务执行系统。
可选的,存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
此外,本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的基于MapReduce架构的数据同步用块任务执行系统。
可选的,本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面基于MapReduce架构的数据同步用块任务执行系统。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (10)
1.一种基于MapReduce架构的数据同步用块任务执行系统,其特征在于:包括
基础架构单元(100)、数据处理单元(200)、数据同步单元(300)和任务并行单元(400);所述基础架构单元(100)、所述数据处理单元(200)、所述数据同步单元(300)与所述任务并行单元(400)依次通过网络通信连接;所述基础架构单元(100)用于搭建、管理支持系统运行的分布式运算程序的编程框架并在此基础上进行任务调度管理操作;所述数据处理单元(200)用于以MapReduce编程步骤为基础完成数据的函数计算处理过程;所述数据同步单元(300)用于管理并选择最优适用的方法完成数据同步;所述任务并行单元(400)用于管理、选择最优适用的方法实现多个任务的并行处理过程并对并行程度进行评估;
所述基础架构单元(100)包括硬件平台模块(101)、逻辑框架模块(102)、用户模型模块(103)和任务调度模块(104);
所述数据处理单元(200)包括分片输入模块(201)、函数计算模块(202)、聚合分发模块(203)和集合输出模块(204);
所述数据同步单元(300)包括发布订阅模块(301)、SQL JOB模块(302)、消息队列模块(303)和方式选择模块(304);
所述任务并行单元(400)包括位级并行模块(401)、指令级并行模块(402)、线程级并行模块(403)和并行评估模块(404);
该基于MapReduce架构的数据同步用块任务执行系统中,先搭建包括硬件平台、逻辑框架、用户模型等的基础网络架构,在此基础上构建由全局任务调度中心、若干数据中心、客户端组成的任务调度模型,实现系统的全局任务调度,再按照MapReduce的编程步骤,分别对数据密集型和计算密集型任务进行并行执行处理,实现对海量的数据进行分析的过程,然后按照数据分析结果,调用最优适用的数据同步方法进行数据同步,最后自动识别、调用对应方法进行多个程序任务的并行执行,并对并行度进行评估以作为调整任务执行方式的调整依据。
2.根据权利要求1所述的基于MapReduce架构的数据同步用块任务执行系统,其特征在于:所述硬件平台模块(101)、所述逻辑框架模块(102)、所述用户模型模块(103)与所述任务调度模块(104)依次通过网络通信连接且并列运行;所述硬件平台模块(101)用于采用市场上现成的普通PC或性能较高的刀架或机架式服务器,构成一个包含数千个节点的分布式并行计算集群,从而构建基于集群的高性能并行计算平台作为系统运行的硬件层;所述逻辑框架模块(102)用于提供并管理一个能自动完成任务的并行化处理、自动划分计算数据和计算任务的并行计算机软件架构,可以在集群节点上自动分配和执行子任务以及收集计算结果,从而搭建了并行程序开发与运行框架作为系统的逻辑层;所述用户模型模块(103)用于借助函数式Lisp语言中的设计思想提供一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行计算任务,构建并行程序设计模型与方法作为系统的用户层;所述任务调度模块(104)用于构建并管理跨数据中心的任务调度结构。
3.根据权利要求2所述的基于MapReduce架构的数据同步用块任务执行系统,其特征在于:所述任务调度模块(104)包括调度中心模块(1041)、数据中心模块(1042)和客户端模块(1043);所述调度中心模块(1041)、所述数据中心模块(1042)与所述客户端模块(1043)依次通过广域网连接;所述调度中心模块(1041)用于构建一个全局任务调度中心以接收客户端提交的MapReduce任务请求,按照预设的选择算法从各数据中心中选择资源和性能满足要求的任务数据,并按照预设任务分派算法将任务分派至资源管理器进行任务执行操作;所述数据中心模块(1042)由一个资源管理器与多个节点管理器构成,资源管理器用于向全局任务调度中心注册并定时汇报本数据中心状态信息;所述客户端模块(1043)用于实时从全局任务调度中心获取MapReduce任务执行信息。
4.根据权利要求1所述的基于MapReduce架构的数据同步用块任务执行系统,其特征在于:所述分片输入模块(201)的信号输出端与所述函数计算模块(202)的信号输入端连接,所述函数计算模块(202)的信号输出端与所述聚合分发模块(203)的信号输入端连接,所述聚合分发模块(203)的信号输出端与所述集合输出模块(204)的信号输入端连接;所述分片输入模块(201)用于将待处理的数据进行分片,并将每个数据切片分别输入到map函数中;所述函数计算模块(202)用于通过map函数计算处理输入的子数据,即将有用的数据映射到键值对上,并产生键值对作为中间结果输出;所述聚合分发模块(203)用于通过框架将所有节点的中间结果键作聚合处理,并将键相同的数据分发给reduce函数处理,即将每个map输出的键合在一起,遇到相同的键则合并成一个键值对,将它们的值做成数组并排序以减少归约;所述集合输出模块(204)用于通过reduce函数处理键和对应值得集合,处理合并后的键值对,将键的数组提取出来进行计算,进一步减少归约的数组,并将产生的新的键值对作为最终输出。
6.根据权利要求4所述的基于MapReduce架构的数据同步用块任务执行系统,其特征在于:所述聚合分发模块(203)采用K-均值聚类算法,该算法步骤如下:
S1、选K个初始聚类中心,Z1 I,Z2 I,∧ZK I,其中,(1,2,...,k)为寻找聚类中心的迭代运算的次序号;
S2、逐个将需分类模式样本{X}按最小距离准则分配给K个聚类中心中的某一个Zj (1);对所有的i≠j,j=1,2,...,K,如果Z1 I,Z2 I,∧ZK I,则X∈Sj k,其中,k为迭代运算的次序号,第一次迭代k=1,Sj表示第j个聚类,其聚类中心为Zj;
S3、计算各个聚类中心的新的向量值Zj (k+1),j=1,2,...,K,求各聚类域中所包含样本的均值向量:
其中,Nj为第j个聚类域Sj中所包含的样本个数;
其中,以均值向量作为新的聚类中心,可使如下聚类准则函数J最小:
S4、若Zj (k+1)≠Zj (k+1),j=1,2,...,K,则返回S2,将模式样本逐个重新分类,重复迭代运算;若Zj (k+1)=Zj (k+1),j=1,2,...,K,则算法收敛,计算结束。
7.根据权利要求1所述的基于MapReduce架构的数据同步用块任务执行系统,其特征在于:所述发布订阅模块(301)、所述SQL JOB模块(302)与所述消息队列模块(303)依次通过网络通信连接且并列运行,所述发布订阅模块(301)、所述SQL JOB模块(302)、所述消息队列模块(303)的信号输出端与所述方式选择模块(304)的信号输入端连接;所述发布订阅模块(301)用于在不用编写任何代码的基础上,通过Sql Server自带的发布/订阅数据库备份机制快速地实现数据的备份同步;所述SQL JOB模块(302)通过Sql Job定时作业的方式实现数据同步,即用于通过目标服务器和源服务器的连接,通过编写Sql语句从源服务器中读取数据并更新到目标服务器;所述消息队列模块(303)用于通过SQL Server ServiceBroker为SQL Server提供队列和可靠的消息传递及功能强大的异步编程模型,从而提供可靠的消息传递服务,可以缩短交互式响应时间以增加应用程序的总吞吐量,进而实现数据同步;所述方式选择模块(304)用于根据数据的来源和类型选择最优适用的数据同步方法。
9.根据权利要求1所述的基于MapReduce架构的数据同步用块任务执行系统,其特征在于:所述位级并行模块(401)、所述指令级并行模块(402)与所述线程级并行模块(403)依次通过网络通信连接且并列运行,所述位级并行模块(401)、所述指令级并行模块(402)、所述线程级并行模块(403)的信号输出端与所述并行评估模块(404)的信号输入端连接;所述位级并行模块(401)用于通过快速的包分类算法进行任务或算法的并行执行操作;所述指令级并行模块(402)用于以细粒度并行方法为基础,其并行性由处理器硬件和编译程序自动识别和利用,以实现进程或线程间的并行;所述线程级并行模块(403)用于由多处理器支持多个线程同时并行执行;所述并行评估模块(404)用于并行执行的各程序之间的并行程度进行评估。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110928199.4A CN113608858A (zh) | 2021-08-13 | 2021-08-13 | 一种基于MapReduce架构的数据同步用块任务执行系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110928199.4A CN113608858A (zh) | 2021-08-13 | 2021-08-13 | 一种基于MapReduce架构的数据同步用块任务执行系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113608858A true CN113608858A (zh) | 2021-11-05 |
Family
ID=78308466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110928199.4A Pending CN113608858A (zh) | 2021-08-13 | 2021-08-13 | 一种基于MapReduce架构的数据同步用块任务执行系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113608858A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827228A (zh) * | 2022-04-21 | 2022-07-29 | 马上消费金融股份有限公司 | 链路处理方法及装置 |
CN116302574A (zh) * | 2023-05-23 | 2023-06-23 | 北京前景无忧电子科技股份有限公司 | 一种基于MapReduce的并发处理方法 |
-
2021
- 2021-08-13 CN CN202110928199.4A patent/CN113608858A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827228A (zh) * | 2022-04-21 | 2022-07-29 | 马上消费金融股份有限公司 | 链路处理方法及装置 |
CN114827228B (zh) * | 2022-04-21 | 2024-04-09 | 马上消费金融股份有限公司 | 链路处理方法及装置 |
CN116302574A (zh) * | 2023-05-23 | 2023-06-23 | 北京前景无忧电子科技股份有限公司 | 一种基于MapReduce的并发处理方法 |
CN116302574B (zh) * | 2023-05-23 | 2023-08-18 | 北京前景无忧电子科技股份有限公司 | 一种基于MapReduce的并发处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ekanayake et al. | Twister: a runtime for iterative mapreduce | |
Hamad et al. | Genetic-based task scheduling algorithm in cloud computing environment | |
US10310908B2 (en) | Dynamic usage balance of central processing units and accelerators | |
Tan et al. | Serving DNN models with multi-instance gpus: A case of the reconfigurable machine scheduling problem | |
Sun et al. | Building a fault tolerant framework with deadline guarantee in big data stream computing environments | |
Senthilkumar et al. | A survey on job scheduling in big data | |
CN113608858A (zh) | 一种基于MapReduce架构的数据同步用块任务执行系统 | |
Ivashko et al. | A survey of desktop grid scheduling | |
Liu et al. | A survey of scheduling frameworks in big data systems | |
Mohamed et al. | Hadoop-MapReduce job scheduling algorithms survey | |
Asghari et al. | Combined use of coral reefs optimization and reinforcement learning for improving resource utilization and load balancing in cloud environments | |
Dongarra et al. | Parallel processing and applied mathematics | |
Jalalian et al. | A hierarchical multi-objective task scheduling approach for fast big data processing | |
Reddy et al. | Multi Objective Task Scheduling Using Modified Ant Colony Optimization in Cloud Computing. | |
Chauhan et al. | Optimal admission control policy based on memetic algorithm in distributed real time database system | |
US20220121465A1 (en) | Reduction Server for Fast Distributed Training | |
Agarwal et al. | Blox: A Modular Toolkit for Deep Learning Schedulers | |
Sankar et al. | Efficient method for parallel process and matching of large data set in grid computing environment | |
Vijayalakshmi et al. | The survey on MapReduce | |
Silberstein | Building an online domain-specific computing service over non-dedicated grid and cloud resources: The superlink-online experience | |
Yassir et al. | Graph-based model and algorithm for minimising big data movement in a cloud environment | |
Huang et al. | Improving speculative execution performance with coworker for cloud computing | |
Wang et al. | GPARS: Graph predictive algorithm for efficient resource scheduling in heterogeneous GPU clusters | |
Bensaleh et al. | Optimal task scheduling for distributed cluster with active storage devices and accelerated nodes | |
Panigrahi et al. | Green Cloud Computing: An Emerging Trend of GIT in Cloud Computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |