CN112540985A - 基于分布式计算框架的全局排序输出系统及其方法 - Google Patents
基于分布式计算框架的全局排序输出系统及其方法 Download PDFInfo
- Publication number
- CN112540985A CN112540985A CN202011413983.3A CN202011413983A CN112540985A CN 112540985 A CN112540985 A CN 112540985A CN 202011413983 A CN202011413983 A CN 202011413983A CN 112540985 A CN112540985 A CN 112540985A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- sorting
- sequencing
- output
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Abstract
本发明涉及一种基于分布式计算框架的全局排序输出系统及其方法,采用分布式计算框架,其内设置有节点排序暂存模块、共识数据排序模块、数据同步输出模块。通过节点排序暂存模块用于数据排序,通过共识数据排序模块,将排序后的数据传递到下一个步骤,通过数据同步输出模块,将数据输出至目标库表。由此,各个节点通过共识轮询全局数据排序,不需要依赖分布式文件系统进行全局排序,简化了系统的复杂度。不需要将数据集中起来处理,降低了内存、CPU等资源消耗。整个排序过程耗时少,处理效率高,能更快的写入目标库表,提高用户体验。减少网络消耗,降低分布式计算框架资源消耗。
Description
技术领域
本发明涉及一种排序输出系统及其方法,尤其涉及一种基于分布式计算框架的全局排序输出系统及其方法。
背景技术
在现有分布式计算框架中,默认结果输出到目标库表是无序的,如果用户设定了排序规则也只是在各个节点内进行数据结果排序,最后输出也是各个节点的无序输出到目标库表。
同时,在数据处理过程中需要依赖分布式文件系统进行数据汇聚排序,不仅增加组件而且汇聚及输出效率比较低。
具体来说,主要体现在以下几个方面的缺点:
1、各个节点首先需要将计算完成的数据,通过分布式文件系统将各个节点数据汇集成一个临时文件。此方法对数据量,网络,分布式文件系统性能异常敏感,某一点有问题就会造成性能极度下降。
2、文件汇集完成后需要读取文件内容进行排序,导致分布式文件系统压力巨大,资源消耗多,时间长。
3、排序完成后,分布式计算节点中某个节点需要重新通过分布式文件系统读取排序后的汇聚文件。这样会导致网络及分布式计算节点资源消耗大,性能低下,耗时长。
有鉴于上述的缺陷,本设计人,积极加以研究创新,以期创设一种基于分布式计算框架的全局排序输出系统及其方法,使其更具有产业上的利用价值。
发明内容
为解决上述技术问题,本发明的目的是提供一种基于分布式计算框架的全局排序输出系统及其方法。
本发明的基于分布式计算框架的全局排序输出系统,其中:采用分布式计算框架,其内设置有节点排序暂存模块,用于与本地文件系统通讯;还包括有共识数据排序模块;用于在排序完成后批量输出数据量的数据交给下个节点,还包括有数据同步输出模块,用于将输出节点输出至目标库表。
基于分布式计算框架的全局排序输出方法,其中:
步骤一,通过节点排序暂存模块用于数据排序;
步骤二,通过共识数据排序模块,将排序后的数据传递到下一个步骤;
步骤三,通过数据同步输出模块,将数据输出至目标库表。
进一步地,上述的基于分布式计算框架的全局排序输出方法,其中,所述步骤一中,通过节点排序暂存模块,将各个节点内的数据排序并保存到节点所在本地文件系统。
更进一步地,上述的基于分布式计算框架的全局排序输出方法,其中,所述步骤一中,各个节点依赖分布式计算框架数据读取机制,读取属于自己的数据块,采用边读取边存储的方式,通过临时文件暂存于各个节点本地文件系统,然后加载暂存的临时文件至节点内存,根据用户设定的排序字段进行增序或降序排序,将排序完的数据保存为另一份临时文件,保存至节点本地文件系统。
更进一步地,上述的基于分布式计算框架的全局排序输出方法,其中,所述步骤二中,将分布式计算框架中参与计算的各个节点,通过节点共识的方法,轮番取出批量输出数据量的数据,交给下个节点;
同时,本节点也取出相同量数据进行排序,排序完成后取出批量输出数据量的数据交给下个节点;
循环直至最后一个节点完成后,将最终结果广播至每个节点;
由各个节点最终确认排序无误后,由发起确认的节点将结果传递至数据同步输出模块。
更进一步地,上述的基于分布式计算框架的全局排序输出方法,其中,所述确认排序无误的实现方式为,各个节点事先将本节点数据,根据用户设定的排序规则进行排序,各个节点轮番参与排序时,根据排序顺序取前N条数据进行排序。
最终排序由最后一个节点采用消息通知的方式,将排序结果广播至各个节点,各个节点收到本轮排序结果后进行排序结果校验,对排在本节点之前的数据根据用户设定的排序规则进行校验。
更进一步地,上述的基于分布式计算框架的全局排序输出方法,其中,所述步骤三中,通过共识数据排序结果,将需要输出的完整数据从各个节点同步至输出节点,由输出节点输出至目标库表;
所述共识数据排序为,数据同步输出模块,通过内存获取共识排序模块输出的最终共识数据排序结果,根据该排序结果,采用消息通知方式,通知各个节点,将排序结果中的完整数据通过消息传递的方式发送至本节点,
数据同步模块收到各个节点传递过来的完整数据,将完整数据整理完毕后输出至目标表。
再进一步地,上述的基于分布式计算框架的全局排序输出方法,其中,所述目标库表是由用户建立分布式计算任务时设定,目标库表包含关系型数据库(MySQL,Oracle等)、分布式文件系统(hdfs等)。
借由上述方案,本发明至少具有以下优点:
1、各个节点通过共识轮询全局数据排序,不需要依赖分布式文件系统进行全局排序,简化了系统的复杂度。
2、不需要将数据集中起来处理,降低了内存、CPU等资源消耗。
3、整个排序过程耗时少,处理效率高,能更快的写入目标库表,提高用户体验。
4、减少网络消耗,降低分布式计算框架资源消耗。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
图1是基于分布式计算框架的全局排序输出方法的示意图。
图2是内存传递的示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1至2的基于分布式计算框架的全局排序输出系统,其与众不同之处在于:采用分布式计算框架,其内设置有节点排序暂存模块,用于与本地文件系统通讯。同时,还包括有共识数据排序模块,用于在排序完成后批量输出数据量的数据交给下个节点。并且,还包括有数据同步输出模块,用于将输出节点输出至目标库表。
为了更好的实现本发明的方法,基于分布式计算框架的全局排序输出方法,其采用以下步骤:
步骤一,通过节点排序暂存模块用于数据排序。通过节点排序暂存模块,将各个节点内的数据排序并保存到节点所在本地文件系统。同时,各个节点依赖分布式计算框架数据读取机制,读取属于自己的数据块,采用边读取边存储的方式。实施期间,通过临时文件暂存于各个节点本地文件系统,然后加载暂存的临时文件至节点内存,只加载用户指定的排序字段和主键两个字段。最后,根据用户设定的排序字段进行增序或降序排序,将排序完的数据保存为另一份临时文件,保存至节点本地文件系统。
步骤二,通过共识数据排序模块,将排序后的数据传递到下一个步骤。具体来说,将分布式计算框架中参与计算的各个节点,通过节点共识的方法,轮番取出批量输出数据量的数据,交给下个节点。同时,本节点也取出相同量数据进行排序,排序完成后取出批量输出数据量的数据交给下个节点。之后,循环直至最后一个节点完成后,将最终结果广播至每个节点。实施期间,由各个节点最终确认排序无误后,由发起确认的节点将结果传递至数据同步输出模块。
结合本发明一较佳的实施方式来看,确认排序无误的实现方式如下:各个节点事先将本节点数据,根据用户设定的排序规则进行排序。同时,在各个节点轮番参与排序时,根据排序顺序取前N条数据进行排序,所以可以确保最终输出的结果排序无误。
最终排序由最后一个节点采用消息通知的方式,将排序结果广播至各个节点。各个节点收到本轮排序结果后进行排序结果校验,对排在本节点之前的数据根据用户设定的排序规则进行校验。
结合实际实施来看,如图2所示:key为8的数据,排在了key为9的数据前面,work-1对这俩条数据进行排序规则比对,能可确保排序的准确性。各个节点验证完毕后,通过消息通知的方式通知work-n排序结果无误,则work-n节点收到各个节点的确认消息后,通过内存传递的方式将排序结果传递至数据同步输出模块。
步骤三,通过数据同步输出模块,将数据输出至目标库表,通过共识数据排序结果,将需要输出的完整数据从各个节点同步至输出节点,由输出节点输出至目标库表。具体来说,共识数据排序过程为,数据同步输出模块。之后,通过内存获取共识排序模块输出的最终共识数据排序结果。接着,根据该排序结果。在此期间,采用消息通知方式,通知各个节点,将排序结果中的完整数据通过消息传递的方式发送至本节点。数据同步模块收到各个节点传递过来的完整数据,将完整数据整理完毕后输出至目标表。
同时,实施期间涉及的目标库表是由用户建立分布式计算任务时设定。目标库表包含关系型数据库(MySQL,Oracle等)、分布式文件系统(hdfs等)。并且,目标库表在用户建立分布式计算任务时已经存在,如果在数据输出时不存在,则数据无法输出。
通过上述的文字表述并结合附图可以看出,采用本发明后,拥有如下优点:
1、各个节点通过共识轮询全局数据排序,不需要依赖分布式文件系统进行全局排序,简化了系统的复杂度。
2、不需要将数据集中起来处理,降低了内存、CPU等资源消耗。
3、整个排序过程耗时少,处理效率高,能更快的写入目标库表,提高用户体验。
4、减少网络消耗,降低分布式计算框架资源消耗。
此外,本发明所描述的指示方位或位置关系,均为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或构造必须具有特定的方位,或是以特定的方位构造来进行操作,因此不能理解为对本发明的限制。
以上所述仅是本发明的优选实施方式,并不用于限制本发明,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (8)
1.基于分布式计算框架的全局排序输出系统,其特征在于:采用分布式计算框架,其内设置有节点排序暂存模块,用于与本地文件系统通讯,还包括有共识数据排序模块,用于在排序完成后批量输出数据量的数据交给下个节点,还包括有数据同步输出模块,用于将输出节点输出至目标库表。
2.基于分布式计算框架的全局排序输出方法,其特征在于:
步骤一,通过节点排序暂存模块用于数据排序;
步骤二,通过共识数据排序模块,将排序后的数据传递到下一个步骤;
步骤三,通过数据同步输出模块,将数据输出至目标库表。
3.根据权利要求2所述的基于分布式计算框架的全局排序输出方法,其特征在于:所述步骤一中,通过节点排序暂存模块,将各个节点内的数据排序并保存到节点所在本地文件系统。
4.根据权利要求2所述的基于分布式计算框架的全局排序输出方法,其特征在于:所述步骤一中,各个节点依赖分布式计算框架数据读取机制,读取属于自己的数据块,采用边读取边存储的方式,通过临时文件暂存于各个节点本地文件系统,然后加载暂存的临时文件至节点内存,根据用户设定的排序字段进行增序或降序排序,将排序完的数据保存为另一份临时文件,保存至节点本地文件系统。
5.根据权利要求2所述的基于分布式计算框架的全局排序输出方法,其特征在于:所述步骤二中,将分布式计算框架中参与计算的各个节点,通过节点共识的方法,轮番取出批量输出数据量的数据,交给下个节点;
本节点也取出相同量数据进行排序,排序完成后取出批量输出数据量的数据交给下个节点;
循环直至最后一个节点完成后,将最终结果广播至每个节点;
由各个节点最终确认排序无误后,由发起确认的节点将结果传递至数据同步输出模块。
6.根据权利要求5所述的基于分布式计算框架的全局排序输出方法,其特征在于:所述确认排序无误的实现方式为,各个节点事先将本节点数据,根据用户设定的排序规则进行排序,各个节点轮番参与排序时,根据排序顺序取前N条数据进行排序,最终排序由最后一个节点采用消息通知的方式,将排序结果广播至各个节点,各个节点收到本轮排序结果后进行排序结果校验,对排在本节点之前的数据根据用户设定的排序规则进行校验。
7.根据权利要求2所述的基于分布式计算框架的全局排序输出方法,其特征在于:所述步骤三中,通过共识数据排序结果,将需要输出的完整数据从各个节点同步至输出节点,由输出节点输出至目标库表;
所述共识数据排序为,数据同步输出模块,通过内存获取共识排序模块输出的最终共识数据排序结果,根据该排序结果,采用消息通知方式,通知各个节点,将排序结果中的完整数据通过消息传递的方式发送至本节点,
数据同步模块收到各个节点传递过来的完整数据,将完整数据整理完毕后输出至目标表。
8.根据权利要求7所述的基于分布式计算框架的全局排序输出方法,其特征在于:所述目标库表是由用户建立分布式计算任务时设定,目标库表包含关系型数据库、分布式文件系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011413983.3A CN112540985B (zh) | 2020-12-07 | 2020-12-07 | 基于分布式计算框架的全局排序输出系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011413983.3A CN112540985B (zh) | 2020-12-07 | 2020-12-07 | 基于分布式计算框架的全局排序输出系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112540985A true CN112540985A (zh) | 2021-03-23 |
CN112540985B CN112540985B (zh) | 2023-09-26 |
Family
ID=75016175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011413983.3A Active CN112540985B (zh) | 2020-12-07 | 2020-12-07 | 基于分布式计算框架的全局排序输出系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112540985B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077183A (zh) * | 2012-12-14 | 2013-05-01 | 北京普泽天玑数据技术有限公司 | 一种分布式顺序表的数据导入方法及其系统 |
CN103530084A (zh) * | 2013-09-26 | 2014-01-22 | 北京奇虎科技有限公司 | 一种数据并行排序方法和系统 |
CN105740332A (zh) * | 2016-01-22 | 2016-07-06 | 北京京东尚科信息技术有限公司 | 数据排序方法和装置 |
CN107103032A (zh) * | 2017-03-21 | 2017-08-29 | 中国科学院计算机网络信息中心 | 一种分布式环境下避免全局排序的海量数据分页查询方法 |
CN107181805A (zh) * | 2017-05-26 | 2017-09-19 | 上交所技术有限责任公司 | 一种在微服务架构下实现全局有序重演的方法 |
CN107992356A (zh) * | 2017-12-13 | 2018-05-04 | 上海壹账通金融科技有限公司 | 区块链事务区块处理方法、电子装置及可读存储介质 |
CN108427680A (zh) * | 2017-02-14 | 2018-08-21 | 张向利 | 一种基于大数据快速排序算法和分布式排序处理系统 |
CN109408521A (zh) * | 2018-09-28 | 2019-03-01 | 上海擎沣投资控股有限公司 | 一种用于更新区块链全局数据状态的方法及其装置 |
CN110033238A (zh) * | 2019-04-15 | 2019-07-19 | 山东公链信息科技有限公司 | 基于异步排序技术的区块链共识系统 |
WO2020233054A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 基于区块链的区块生成方法、装置、设备及存储介质 |
-
2020
- 2020-12-07 CN CN202011413983.3A patent/CN112540985B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077183A (zh) * | 2012-12-14 | 2013-05-01 | 北京普泽天玑数据技术有限公司 | 一种分布式顺序表的数据导入方法及其系统 |
CN103530084A (zh) * | 2013-09-26 | 2014-01-22 | 北京奇虎科技有限公司 | 一种数据并行排序方法和系统 |
CN105740332A (zh) * | 2016-01-22 | 2016-07-06 | 北京京东尚科信息技术有限公司 | 数据排序方法和装置 |
CN108427680A (zh) * | 2017-02-14 | 2018-08-21 | 张向利 | 一种基于大数据快速排序算法和分布式排序处理系统 |
CN107103032A (zh) * | 2017-03-21 | 2017-08-29 | 中国科学院计算机网络信息中心 | 一种分布式环境下避免全局排序的海量数据分页查询方法 |
CN107181805A (zh) * | 2017-05-26 | 2017-09-19 | 上交所技术有限责任公司 | 一种在微服务架构下实现全局有序重演的方法 |
CN107992356A (zh) * | 2017-12-13 | 2018-05-04 | 上海壹账通金融科技有限公司 | 区块链事务区块处理方法、电子装置及可读存储介质 |
CN109408521A (zh) * | 2018-09-28 | 2019-03-01 | 上海擎沣投资控股有限公司 | 一种用于更新区块链全局数据状态的方法及其装置 |
CN110033238A (zh) * | 2019-04-15 | 2019-07-19 | 山东公链信息科技有限公司 | 基于异步排序技术的区块链共识系统 |
WO2020233054A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 基于区块链的区块生成方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
WEIXIN_30337157: "《三种方式实现Hadoop全局排序》", Retrieved from the Internet <URL:http://blog.csdn.net/weixin_30337157/article/detalis/99933610> * |
程序之道: "《如何进行大规模数据的全局排序?》", Retrieved from the Internet <URL:https://blog.csdn.net/weixin_44233163/article/details/88957394> * |
肖雄仁: "异构分布式系统中面向能量管理的并行应用调度算法研究", 《中国优秀博士论文期刊全文数据库》, no. 201901 * |
Also Published As
Publication number | Publication date |
---|---|
CN112540985B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106657170B (zh) | 一种数据同步方法及装置 | |
CN109558065B (zh) | 数据删除方法及分布式存储系统 | |
CN111008521B (zh) | 生成宽表的方法、装置及计算机存储介质 | |
CN113987064A (zh) | 数据处理方法、系统及设备 | |
WO2020143181A1 (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
CN108140035B (zh) | 分布式系统的数据库复制方法及装置 | |
CN110290166A (zh) | 跨集群数据交互方法、系统、装置及可读存储介质 | |
CN110543472A (zh) | 数据对账方法及相关装置 | |
CN108920601B (zh) | 一种数据匹配方法及装置 | |
CN112540985A (zh) | 基于分布式计算框架的全局排序输出系统及其方法 | |
CN105302827A (zh) | 一种事件的搜索方法和设备 | |
CN115658750A (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN110196880B (zh) | 异构数据库数据同步方法和装置、存储介质及电子装置 | |
CN111092956A (zh) | 资源同步方法、装置、存储介质及设备 | |
CN116186082A (zh) | 基于分布式的数据汇总方法、第一服务器和电子设备 | |
CN114090687A (zh) | 一种数据同步方法及装置 | |
CN113377777A (zh) | 数据加载方法、设备、计算机程序产品及存储介质 | |
CN114138330A (zh) | 基于知识图谱的代码克隆检测优化方法、装置和电子设备 | |
CN109739883B (zh) | 提升数据查询性能的方法、装置和电子设备 | |
CN112948494A (zh) | 数据同步方法、装置、电子设备和计算机可读介质 | |
CN111679899A (zh) | 任务调度方法、装置、平台设备及存储介质 | |
CN114666348B (zh) | 一种基于python语言快速构建分布式系统的方法 | |
CN114422151B (zh) | 一种区块块内交易数扩展方法及系统 | |
CN115952200B (zh) | 一种基于mpp架构的多源异构数据聚合查询方法及装置 | |
CN110245025B (zh) | 一种基于Actor模型的数据采集方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |