CN107016083A - 一种支持处理单元在线切换的流数据处理方法 - Google Patents
一种支持处理单元在线切换的流数据处理方法 Download PDFInfo
- Publication number
- CN107016083A CN107016083A CN201710206785.1A CN201710206785A CN107016083A CN 107016083 A CN107016083 A CN 107016083A CN 201710206785 A CN201710206785 A CN 201710206785A CN 107016083 A CN107016083 A CN 107016083A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- processing unit
- processing
- input block
- 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
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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种支持处理单元在线切换的流数据处理方案,属于计算机数据处理技术领域。首先对流数据处理业务进行抽象,将处理业务分为处理框架和处理单元,其中处理框架是固定逻辑,处理单元是可变逻辑。其次,对处理单元进行抽象,采用JVM类加载器实现处理单元的加载。对于新增处理单元,在不重新启动系统的条件下,只需要重新加载相应的类文件即可完成处理单元在线切换,保证了流数据处理系统的高可用性。该发明提出了一种有效的流数据处理单元在线切换的方案,方法简单直观、可靠有效、便于使用。
Description
技术领域
本发明涉及一种支持处理单元在线切换的流数据处理方法,属于计算机数据处理技术领域。
背景技术
近年来,随着工业物联网、气象信息网等技术的发展,人们需要处理的流数据量呈现出爆炸式的增长,数据成为了当今社会增长最快的资源之一。如何存储、处理、分析、应用大数据成为政府、学术界、产业界界共同关注的重大问题。随着数据量的不断增加和对数据处理实时性要求的快速提升,流式计算适应于数据实时性要求高、数据不断流入的场景。面对大数据时效性要求日益突出的应用场景,越来越多的大数据应用趋向于使用流式计算模式。
传统流式计算框架主要以数据库为存储方式,数据规模较小且数据形式单一,而大数据流式处理需要构建高效率、高可靠、低延迟、长期稳定的流式数据处理系统。在诸如气象、能源、工业等关键领域的流式计算使用场景中,往往对系统的可用性要求非常高,不允许处理系统在任何时间出现不能服务的情况;同时,对数据所要进行的处理又不是一成不变的。例如在气象大数据处理过程中,往往面临着新的观测数据类型加入、数据解码算法改变、数据计算和分析算法改变的问题,且这种改变是随着气象业务的升级而经常发生的,是大数据的一种新常态。如何对流数据业务进行抽象,并在此抽象基础上实现对可变逻辑进行动态加载,成为现有流数据处理系统在领域应用中面临的一大挑战。
发明内容
本发明的目的是提出一种支持处理单元在线切换的流数据处理方法,针对已有流数据处理系统中处理框架与处理单元过度耦合、业务改变要求动态改变处理方案的问题,基于对流数据处理系统的流程抽象,首先分离出处理框架和处理单元,其次应用JVM动态加载的机制完成应用算法的动态加载,使系统具有动态应对业务改变的能力,并保持7×24在线服务的高可用性。
本发明方法提出的支持处理单元在线切换的流数据处理方法,包括以下步骤:
(1)建立一个流数据处理的拓扑模型,拓扑模型为一个包括多个起始节点和多个终止节点的有向无环图,将拓扑模型记为二元组<V,E>,其中V为节点集合,E为边集合,节点集合V中的元素节点vi包括:节点名称n、处理单元p和节点类型g,节点类型定义为源节点g1和处理节点g2;处理单元p包括:并发度s、处理逻辑l、输入单元id和输出单元od,输入单元id和输出单元od中分别含有流数据最大采集时间长度tmax、流数据描述信息a、流数据类型m和流数据值d四个属性;处理逻辑l包括键值集合KV,键值集合元素KVi由流数据类型m和数据方法f构成,即KVi=<m,f>;边集合E中的元素ei为由节点集合V中的任意两个相邻节点vx和vy构成的元组,即ei=<vx,vy>,记vx节点为vy节点的前驱节点,vy节点为vx节点的后继节点,前驱节点vx在完成逻辑处理后将流数据传输给后继节点vy;
(2)对上述拓扑模型的节点集合V中的节点类型进行判断,若节点vi的类型为g1,则节点vi根据输入单元id的描述信息a中的数据来源信息进行数据采集,若节点vi的类型为g2,则节点vi根据输入单元id的描述信息a中的数据监听网络端口信息,等待其他节点的数据到来后进行数据采集;
(3)节点vi的处理单元p接收采集的数据,根据节点vi的输入单元id中的最大采集时间长度tmax对当前采集数据的时间长度tcurrent进行判断,若tcurrent≥tmax,则停止采集数据,进入步骤(4),若tcurrent<tmax,则重复本步骤;
(4)节点vi的处理单元p的输入单元id接收采集的数据,采集数据进入处理单元p中的处理逻辑l,处理逻辑l根据输入单元id的流数据类型m,对处理逻辑l的键值集合KV进行检索,若键值集合KV中存在流数据类型m与输入单元id的流数据类型m相等的KVi,则处理逻辑l根据处理单元p的并发度s,调用KVi中的数据方法f,使用s个线程处理数据,进入步骤(5),若键值集合KV中不存在流数据类型m与输入单元id的流数据类型m相等的KVi,则返回上述步骤(3);
(5)经上述步骤(4)处理后的数据流入输出单元od,输出单元od对边集合E进行检索,若边集合E中存在当前节点vi的节点名称n与前驱节点vx的节点名称n相同的ei,则输出单元od将流入的数据传送给该ei中的后继节点vy,并返回上述步骤(2),若边集合E中不存在当前节点vi的节点名称n与前驱节点vx的节点名称n相同的ei,则输出单元od将流入的数据输出,得到流数据处理结果,并返回上述步骤(2)。
本发明提出的支持处理单元在线切换的流数据处理方案,其优点是:
1、本发明方法对流数据处理过程进行抽象,将不需要根据业务改变的处理框架和需要根据业务在线切换的处理单元进行分离,具有很强的通用性。
2、本发明可以应用于任何需要业务实时改变的流数据处理场景,具有良好的扩展性。
3、本发明具有不需要重新启动流数据处理系统、无需停止服务,具有7×24高可用的特点。
附图说明
图1是本发明提出的流数据处理的拓扑模型图。
图2是本发明提出的支持处理单元在线切换的流数据处理方法的流程框图。
具体实施方式
本发明提出一种支持处理单元在线切换的流数据处理方法,其流程框图如图2所示,包括以下步骤:
(1)建立一个流数据处理的拓扑模型,拓扑模型为一个包括多个起始节点和多个终止节点的有向无环图,将拓扑模型记为二元组<V,E>,其中V为节点集合,E为边集合,图1所示为拓扑模型的简单示意,图1所有节点组成节点集合V,所有的边,即图中的所有的箭头组成边集合E。拓扑模型用于对流数据处理流程进行描述。拓扑模型遵循流数据处理的业务过程,为按照一定前置约束条件进行数据上下游流转的流程。拓扑模型是流数据处理流程的抽象载体。其中节点集合V中的元素节点vi包括:节点名称n、处理单元p和节点类型g,节点类型定义为源节点g1和处理节点g2;处理单元p包括:并发度s、处理逻辑l、输入单元id和输出单元od,输入单元id和输出单元od中分别含有流数据最大采集时间长度tmax、流数据描述信息a、流数据类型m和流数据值d四个属性;处理逻辑l包括键值集合KV,键值集合元素KVi由流数据类型m和数据方法f构成,即KVi=<m,f>;边集合E中的元素ei为由节点集合V中的任意两个相邻节点vx和vy构成的元组,即ei=<vx,vy>,记vx节点为vy节点的前驱节点,vy节点为vx节点的后继节点,前驱节点vx在完成逻辑处理后将流数据传输给后继节点vy;
(2)对上述拓扑模型的节点集合V中的节点类型进行判断,若节点vi的类型为g1,则节点vi根据输入单元id的描述信息a中的数据来源信息进行数据采集,若节点vi的类型为g2,则节点vi根据输入单元id的描述信息a中的数据监听网络端口信息,等待其他节点的数据到来后进行数据采集;
(3)节点vi的处理单元p接收采集的数据,根据节点vi的输入单元id中的最大采集时间长度tmax对当前采集数据的时间长度tcurrent进行判断,若tcurrent≥tmax,则停止采集数据,进入步骤(4),若tcurrent<tmax,则重复本步骤;
(4)节点vi的处理单元p的输入单元id接收采集的数据,采集数据进入处理单元p中的处理逻辑l,处理逻辑l根据输入单元id的流数据类型m,对处理逻辑l的键值集合KV进行检索,若键值集合KV中存在流数据类型m与输入单元id的流数据类型m相等的KVi,则处理逻辑l根据处理单元p的并发度s,调用KVi中的数据方法f,使用s个线程处理数据,进入步骤(5),若键值集合KV中不存在流数据类型m与输入单元id的流数据类型m相等的KVi,则返回上述步骤(3);本步骤根据输入单元id的流数据类型m调用不同的数据方法f,即实现了处理单元在线切换的逻辑,在具体的程序语言实现中,即采用JVM类加载器实现处理单元的加载与切换。
(5)经上述步骤(4)处理后的数据流入输出单元od,输出单元od对边集合E进行检索,若边集合E中存在当前节点vi的节点名称n与前驱节点vx的节点名称n相同的ei,则输出单元od将流入的数据传送给该ei中的后继节点vy,并返回上述步骤(2),若边集合E中不存在当前节点vi的节点名称n与前驱节点vx的节点名称n相同的ei,则输出单元od将流入的数据输出,得到流数据处理结果,并返回上述步骤(2)。
Claims (1)
1.一种支持处理单元在线切换的流数据处理方法,其特征在于该方法包括以下步骤:
(1)建立一个流数据处理的拓扑模型,拓扑模型为一个包括多个起始节点和多个终止节点的有向无环图,将拓扑模型记为二元组<V,E>,其中V为节点集合,E为边集合,其中节点集合V中的元素节点vi包括:节点名称n、处理单元p和节点类型g,节点类型定义为源节点g1和处理节点g2;处理单元p包括:并发度s、处理逻辑l、输入单元id和输出单元od,输入单元id和输出单元od中分别含有流数据最大采集时间长度tmax、流数据描述信息a、流数据类型m和流数据值d四个属性;处理逻辑l包括键值集合KV,键值集合元素KVi由流数据类型m和数据方法f构成,即KVi=<m,f>;边集合E中的元素ei为由节点集合V中的任意两个相邻节点vx和vy构成的元组,即ei=<vx,vy>,记vx节点为vy节点的前驱节点,vy节点为vx节点的后继节点,前驱节点vx在完成逻辑处理后将流数据传输给后继节点vy;
(2)对上述拓扑模型的节点集合V中的节点类型进行判断,若节点vi的类型为g1,则节点vi根据输入单元id的描述信息a中的数据来源信息进行数据采集,若节点vi的类型为g2,则节点vi根据输入单元id的描述信息a中的数据监听网络端口信息,等待其他节点的数据到来后进行数据采集;
(3)节点vi的处理单元p接收采集的数据,根据节点vi的输入单元id中的最大采集时间长度tmax对当前采集数据的时间长度tcurrent进行判断,若tcurrent≥tmax,则停止采集数据,进入步骤(4),若tcurrent<tmax,则重复本步骤;
(4)节点vi的处理单元p的输入单元id接收采集的数据,采集数据进入处理单元p中的处理逻辑l,处理逻辑l根据输入单元id的流数据类型m,对处理逻辑l的键值集合KV进行检索,若键值集合KV中存在流数据类型m与输入单元id的流数据类型m相等的KVi,则处理逻辑l根据处理单元p的并发度s,调用KVi中的数据方法f,使用s个线程处理数据,进入步骤(5),若键值集合KV中不存在流数据类型m与输入单元id的流数据类型m相等的KVi,则返回上述步骤(3);
(5)经上述步骤(4)处理后的数据流入输出单元od,输出单元od对边集合E进行检索,若边集合E中存在当前节点vi的节点名称n与前驱节点vx的节点名称n相同的ei,则输出单元od将流入的数据传送给该ei中的后继节点vy,并返回上述步骤(2),若边集合E中不存在当前节点vi的节点名称n与前驱节点vx的节点名称n相同的ei,则输出单元od将流入的数据输出,得到流数据处理结果,并返回上述步骤(2)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710206785.1A CN107016083B (zh) | 2017-03-31 | 2017-03-31 | 一种支持处理单元在线切换的流数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710206785.1A CN107016083B (zh) | 2017-03-31 | 2017-03-31 | 一种支持处理单元在线切换的流数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107016083A true CN107016083A (zh) | 2017-08-04 |
CN107016083B CN107016083B (zh) | 2020-02-07 |
Family
ID=59444903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710206785.1A Active CN107016083B (zh) | 2017-03-31 | 2017-03-31 | 一种支持处理单元在线切换的流数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107016083B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797728A (zh) * | 2017-10-31 | 2018-03-13 | 维沃移动通信有限公司 | 一种访问应用程序的方法和移动终端 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978359A (en) * | 1995-07-19 | 1999-11-02 | Fujitsu Network Communications, Inc. | Allocated and dynamic switch flow control |
CN1441561A (zh) * | 2001-10-22 | 2003-09-10 | 松下电器产业株式会社 | 数据流选择输出装置、控制程序、数据流选择输出方法 |
CN1912926A (zh) * | 2005-11-10 | 2007-02-14 | 威盛电子股份有限公司 | 可中断图形处理单元处理多个程序的方法和图形处理单元 |
CN101216911A (zh) * | 2008-01-04 | 2008-07-09 | 清华大学 | 支持分布式执行的工作流模型动态分割方法 |
CN101387958A (zh) * | 2008-10-20 | 2009-03-18 | 东软集团股份有限公司 | 一种图像数据的处理方法及装置 |
CN101593294A (zh) * | 2008-05-29 | 2009-12-02 | 国际商业机器公司 | 动态配置工作流的方法和系统 |
CN101615269A (zh) * | 2009-08-11 | 2009-12-30 | 用友软件股份有限公司 | 一种工作流管理系统中的回退方法和装置 |
US7751344B2 (en) * | 2006-11-08 | 2010-07-06 | Sicortex, Inc. | Computer system and method using a kautz-like digraph to interconnect computer nodes and having control back channel between nodes |
CN101923471A (zh) * | 2010-08-26 | 2010-12-22 | 北京天融信科技有限公司 | 网络事件处理方法 |
CN102332125A (zh) * | 2011-11-08 | 2012-01-25 | 南京大学 | 基于后继任务的工作流挖掘方法 |
CN103412794A (zh) * | 2013-08-08 | 2013-11-27 | 南京邮电大学 | 一种面向流计算的动态调度分配方法 |
CN104094232A (zh) * | 2012-01-30 | 2014-10-08 | 国际商业机器公司 | 流式数据系统中的处理单元管理 |
US8949806B1 (en) * | 2007-02-07 | 2015-02-03 | Tilera Corporation | Compiling code for parallel processing architectures based on control flow |
US20150261881A1 (en) * | 2014-03-14 | 2015-09-17 | Concurrent, Inc. | Logical data flow mapping rules for (sub) graph isomorphism in a cluster computing environment |
CN105607907A (zh) * | 2015-12-21 | 2016-05-25 | 用友网络科技股份有限公司 | 一种工作流引擎动态切换的模型驱动控制系统 |
US20160162527A1 (en) * | 2014-12-04 | 2016-06-09 | International Business Machines Corporation | Automatic discovery of code and data stores that populate a user interface element |
CN106202192A (zh) * | 2016-06-28 | 2016-12-07 | 浪潮软件集团有限公司 | 一种基于工作流的大数据分析方法 |
-
2017
- 2017-03-31 CN CN201710206785.1A patent/CN107016083B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978359A (en) * | 1995-07-19 | 1999-11-02 | Fujitsu Network Communications, Inc. | Allocated and dynamic switch flow control |
CN1441561A (zh) * | 2001-10-22 | 2003-09-10 | 松下电器产业株式会社 | 数据流选择输出装置、控制程序、数据流选择输出方法 |
CN1912926A (zh) * | 2005-11-10 | 2007-02-14 | 威盛电子股份有限公司 | 可中断图形处理单元处理多个程序的方法和图形处理单元 |
US7751344B2 (en) * | 2006-11-08 | 2010-07-06 | Sicortex, Inc. | Computer system and method using a kautz-like digraph to interconnect computer nodes and having control back channel between nodes |
US8949806B1 (en) * | 2007-02-07 | 2015-02-03 | Tilera Corporation | Compiling code for parallel processing architectures based on control flow |
CN101216911A (zh) * | 2008-01-04 | 2008-07-09 | 清华大学 | 支持分布式执行的工作流模型动态分割方法 |
CN101593294A (zh) * | 2008-05-29 | 2009-12-02 | 国际商业机器公司 | 动态配置工作流的方法和系统 |
CN101387958A (zh) * | 2008-10-20 | 2009-03-18 | 东软集团股份有限公司 | 一种图像数据的处理方法及装置 |
CN101615269A (zh) * | 2009-08-11 | 2009-12-30 | 用友软件股份有限公司 | 一种工作流管理系统中的回退方法和装置 |
CN101923471A (zh) * | 2010-08-26 | 2010-12-22 | 北京天融信科技有限公司 | 网络事件处理方法 |
CN102332125A (zh) * | 2011-11-08 | 2012-01-25 | 南京大学 | 基于后继任务的工作流挖掘方法 |
CN104094232A (zh) * | 2012-01-30 | 2014-10-08 | 国际商业机器公司 | 流式数据系统中的处理单元管理 |
CN103412794A (zh) * | 2013-08-08 | 2013-11-27 | 南京邮电大学 | 一种面向流计算的动态调度分配方法 |
US20150261881A1 (en) * | 2014-03-14 | 2015-09-17 | Concurrent, Inc. | Logical data flow mapping rules for (sub) graph isomorphism in a cluster computing environment |
US20160162527A1 (en) * | 2014-12-04 | 2016-06-09 | International Business Machines Corporation | Automatic discovery of code and data stores that populate a user interface element |
CN105607907A (zh) * | 2015-12-21 | 2016-05-25 | 用友网络科技股份有限公司 | 一种工作流引擎动态切换的模型驱动控制系统 |
CN106202192A (zh) * | 2016-06-28 | 2016-12-07 | 浪潮软件集团有限公司 | 一种基于工作流的大数据分析方法 |
Non-Patent Citations (3)
Title |
---|
GIRISH N. NAIR MEMBER,: ""When is n-pairs information a multicommodity flow?"", 《2011 IEEE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY PROCEEDINGS》 * |
王桂玲 等: ""基于云计算的流数据集成与服务"", 《计算机学报》 * |
韩宗芬 等: ""基于带权有向图的网格工作流数据传输策略"", 《华中科技大学学报(自然科学版)》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797728A (zh) * | 2017-10-31 | 2018-03-13 | 维沃移动通信有限公司 | 一种访问应用程序的方法和移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN107016083B (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108510150B (zh) | 一种基于边缘计算的纺纱cps及其实时任务处理方法 | |
CN112148455A (zh) | 一种任务处理方法、设备及介质 | |
CN103605662A (zh) | 一种分布式计算框架参数优化方法、装置及系统 | |
CN106873945A (zh) | 基于批处理和流式处理的数据处理架构及数据处理方法 | |
CN111694643A (zh) | 一种面向图神经网络应用的任务调度执行系统及方法 | |
Kchaou et al. | Towards an offloading framework based on big data analytics in mobile cloud computing environments | |
CN112631754A (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN105573843B (zh) | 一种数据处理方法和系统 | |
CN109582837A (zh) | 一种基于云的可视化数据处理方法及系统 | |
CN110209674A (zh) | 一种工业环境粉尘监控微信小程序的云端数据库统计方法及装置 | |
CN112217805A (zh) | 一种配电物联网多模协议适配方法 | |
CN106909624B (zh) | 一种海量数据实时排序优化方法 | |
CN107454009B (zh) | 面向数据中心的离线场景低带宽开销流量调度方案 | |
JPWO2011142227A1 (ja) | コンピュータ・システム、方法及びプログラム | |
KR101955376B1 (ko) | 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
CN111625218A (zh) | 一种自定义库开发的大数据处理方法及系统 | |
CN107016083A (zh) | 一种支持处理单元在线切换的流数据处理方法 | |
CN113656369A (zh) | 一种大数据场景下的日志分布式流式采集及计算方法 | |
CN107911484A (zh) | 一种消息处理的方法及装置 | |
Dai et al. | Stabilizing queueing networks with setups | |
CN110380991A (zh) | 一种IOCP机制及基于eFPGA和IOCP的物联网通信加速系统 | |
Simmhan et al. | Floe: A continuous dataflow framework for dynamic cloud applications | |
CN113961342B (zh) | 边云协同的复杂事件检测方法 | |
CN111090619B (zh) | 一种轨道交通网络监测流数据的实时处理方法 | |
Wang et al. | An efficient complex event processing algorithm based on multipattern sharing for massive manufacturing event streams |
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 |