CN108696559A - 流处理方法及装置 - Google Patents
流处理方法及装置 Download PDFInfo
- Publication number
- CN108696559A CN108696559A CN201710233425.0A CN201710233425A CN108696559A CN 108696559 A CN108696559 A CN 108696559A CN 201710233425 A CN201710233425 A CN 201710233425A CN 108696559 A CN108696559 A CN 108696559A
- Authority
- CN
- China
- Prior art keywords
- stream process
- piece
- stream
- block number
- data memory
- 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
- 238000000034 method Methods 0.000 title claims abstract description 329
- 238000012545 processing Methods 0.000 title claims abstract description 49
- 230000008569 process Effects 0.000 claims abstract description 291
- 238000007726 management method Methods 0.000 claims description 57
- 238000013523 data management Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims 1
- 238000012546 transfer Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011112 process operation Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 229940126655 NDI-034858 Drugs 0.000 description 1
- 241000290929 Nimbus Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000013396 workstream Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种流处理方法及装置,该方法包括:流处理管理单元接收客户端发送的流处理任务;流处理管理单元从元数据管理节点获取待处理文件的路径对应的各个块的块号,以及各个块所在的数据存储节点的网络地址;流处理管理单元分别将流处理逻辑和各个块的块号发送至各个块所在的数据存储节点的流处理单元;流处理计算单元从所在的数据存储节点获取接收到的块号对应的块数据,针对接收到的块号对应的块数据执行流处理逻辑。通过以上方式,可克服因流处理***与数据存储节点之间的网络传输速度较低而影响流处理的速度的技术问题。
Description
技术领域
本发明涉及信息技术领域,特别涉及一种流处理方法及装置。
背景技术
工作流(Work flow)是对工作流程及工作流程中各业务之间如何前后组织在一起的逻辑规则的抽象、概括、描述。工作流概念起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序活动而提出的一个概念,目的是通过将工作分解成定义良好的流程或角色,按照一定的规则和过程来执行这些流程并对其进行监控,达到提高工作效率、更好的控制过程、增强对客户的服务、有效管理业务流程等目的。工作流建模,即将工作流在计算机中以恰当的模型进行表示并对其实施计算。通过工作流建模,工作流可以通过工作流***来管理。
流处理***的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中流程之间以及群体成员之间的信息交互。流处理***通常由工作流程设计工具、工作流程管理工具组成,工作流程设计工具供用户设计自己的工作流程定义,工作流程管理工具负责管理工作流程的执行。在工作流***工作过程中,工作流程实例包括一个或多个业务(Task),每个业务代表需要进行的某项工作。
Apache Storm是现有技术中典型的流处理***,由Master-Slave(主-从)架构组成,Nimbus是主进程,Supervisor是运行业务的从进程。流处理***Storm与分布式文件***建立网络连接,分布式文件***存放需要流处理***Storm进行处理的数据,分布式文件***包括Master Server(主服务器)和Data Server(数据服务器),Master Server是元数据管理节点,管理数据块的分布情况,Data Server是数据存储节点点,存储数据块数据,Storm与数据存储节点点设置在不同服务器上。
在Storm的流处理作业中,Storm首先需要从数据服务器获取需要进行流处理的数据。具体地,数据服务器提供数据查询接口,Storm通过网络输入参数至数据查询接口,通过网络从数据服务器获取数据,然后将获取到的数据加载到Supervisor中。
由于在现有技术中,流处理***需要通过网络从数据存储节点获取数据,因此获取数据的速度受网络性能限制,会导致整个流处理的性能受限于网络,在流处理***与数据存储节点之间的网络传输速度较低时,会极大地影响流处理的速度。
发明内容
为解决现有技术的问题,本发明实施例提供一种流处理方法及装置,可克服因流处理***与数据存储节点之间的网络传输速度较低而影响流处理的速度的技术问题。
第一方面,本发明实施例提供一种流处理方法,该方法应用于流处理***,流处理***包括流处理管理单元以及流处理计算单元,该方法包括:
流处理管理单元接收客户端发送的流处理任务,其中流处理任务包括流处理逻辑和待处理文件在分布式文件***的路径,分布式文件***包括元数据管理节点和多个数据存储节点,每一数据存储节点设置有流处理计算单元;
流处理管理单元从元数据管理节点获取待处理文件的路径对应的各个块的块号,以及各个块所在的数据存储节点的网络地址;
流处理管理单元分别将流处理逻辑和各个块的块号发送至各个块所在的数据存储节点的流处理单元;
流处理计算单元从所在的数据存储节点获取接收到的块号对应的块数据,针对接收到的块号对应的块数据执行流处理逻辑。
由于本发明实施例将流处理计算单元分布设置在各数据存储节点上,并由流处理管理单元根据待处理文件的路径将流处理任务发送到对应的数据存储节点,由对应的数据存储节点上的流处理计算单元直接在本地读取待处理文件对应的块数据,并将读取到的块数据运行流处理逻辑,由于流处理计算单元本地读取待处理文件,因此可克服因流处理***与数据存储节点之间的网络传输速度较低而影响流处理的速度的技术问题。
并且,由于待处理文件被分散为块数据,分别在不同的流处理计算单元并行执行流处理逻辑,因此可以进一步加快流处理速度,提高处理效率。
在本发明实施例的一种实现方式中,数据存储节点设置有数据管理单元,流处理计算单元设置为程序库,数据管理单元通过加载程序库执行流处理计算单元的功能。
由于将流处理计算单元通过程序库设置在数据管理单元中,而数据管理单元可直接读取块数据,在数据管理单元可读取块数据之后,即可执行流处理逻辑,可加快流处理速度。
在本发明实施例的另一种实现方式中,该方法还包括:
流处理计算单元将执行流处理逻辑获取的处理结果发送至流处理管理单元。
在本发明实施例的另一种实现方式中,元数据管理节点记录有待处理文件在分布式文件***的路径与各个块的块号的第一对应关系,流处理管理单元从元数据管理节点获取路径对应的各个块的块号,以及各个块的块号所在的数据存储节点的网络地址具体包括:
流处理管理单元根据待处理文件在分布式文件***的路径从第一对应关系获取各个块的块号。
在本发明实施例的另一种实现方式中,元数据管理节点记录有各个块的块号与各个块的块号所在的数据存储节点的网络地址的第二对应关系,流处理管理单元从元数据管理节点获取路径对应的各个块的块号,以及各个块的块号所在的数据存储节点的网络地址具体包括:
流处理管理单元根据各块号从第二对应关系获取各块号所在的数据存储节点的网络地址。
第二方面,本发明实施例提供一种流处理***,包括流处理管理单元以及流处理计算单元,
流处理管理单元,用于接收客户端发送的流处理任务,其中流处理任务包括流处理逻辑和待处理文件在分布式文件***的路径,分布式文件***包括元数据管理节点和多个数据存储节点,每一数据存储节点设置有流处理计算单元;
流处理管理单元,还用于从元数据管理节点获取路径对应的各块号,以及各块号所在的数据存储节点的网络地址;
流处理管理单元,还用于分别将流处理逻辑和与各网络地址对应的块号发送至对应的数据存储节点的流处理单元;
流处理计算单元,用于从所在的数据存储节点获取接收到的块号对应的块数据,针对接收到的块号对应的块数据执行流处理逻辑。
在本发明实施例的一种实现方式中,数据存储节点设置有数据管理单元,流处理计算单元设置为程序库,数据管理单元通过加载程序库执行流处理计算单元的功能。
在本发明实施例的另一种实现方式中,流处理计算单元,还用于将执行流处理逻辑获取的处理结果发送至流处理管理单元。
在本发明实施例的另一种实现方式中,元数据管理节点记录有待处理文件在分布式文件***的路径与各个块的块号的第一对应关系,流处理管理单元具体用于:
根据待处理文件在分布式文件***的路径从第一对应关系获取各个块的块号。
在本发明实施例的另一种实现方式中,元数据管理节点记录有各个块的块号与各个块的块号所在的数据存储节点的网络地址的第二对应关系,流处理管理单元具体用于:
根据各个块的块号从第二对应关系获取各块号所在的数据存储节点的网络地址。
第三方面,本发明实施例提供一种流处理管理单元,执行上述流处理***中的流处理管理单元的功能。
第四方面,本发明实施例提供一种主机,包括存储器、处理器和总线,存储器、处理器与总线连接,存储器存储有程序指令,处理器执行程序指令以实现上述流处理***中的流处理管理单元的功能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的流处理***的结构示意图;
图2是根据本发明实施例的流处理***的另一结构示意图;
图3是根据本发明实施例的流处理方法的数据交互图;
图4是根据本发明实施例的流处理***的装置结构示意图;
图5是根据本发明实施例的主机的装置结构示意图。
具体实施方式
首先请参见图1,图1是根据本发明实施例的流处理***与分布式文件***和客户端的连接示意图,如图1所示,流处理***包括流处理管理单元302以及多个流处理计算单元1011、1021、……、及1031,分布式文件***包括元数据管理节点201和多个数据存储节点101、102、……、及103。
在本发明实施例中,客户端301与流处理管理单元302连接,流处理管理单元302分别与元数据管理节点201和多个数据存储节点101、102、……、103连接。
客户端301用于接收用户提交的流处理作业,在本发明实施例中,用户提交流处理作业时指明待处理数据在分布式文件***的路径,并规定要对待处理数据进行何种处理。
流处理任务待处理文件在分布式文件***的路径举例而言可以是URL(UniversalResource Locator的缩写,统一资源定位符),URL为分布式文件***的存储标识,通过URL可在元数据管理节点201查找到待处理文件对应的各个块的块号。
客户端301根据用户提交的流处理作业产生流处理任务,流处理任务包括流处理逻辑和待处理数据在分布式文件***的路径,其中流处理逻辑定义了对待处理数据进行何种处理,举例而言,流处理逻辑可规定在待处理数据中搜索异常事件。
客户端301向流处理管理单元302发送流处理任务,流处理管理单元302根据流处理任务进行调度,选择流处理计算单元从分布式文件***获取待处理文件,并以流处理逻辑对待处理文件进行处理。
举例而言,流处理***可基于apache flink架构实现,客户端301为apache flink的client(客户端)进程,流处理管理单元302为apache flink的job manager(工作管理器)进程,流处理计算单元为apache flink的task manager(作业管理器)进程。
元数据管理节点201设置有元数据管理单元2011和数据库2012,元数据管理单元2011提供接口,外部设备可通过接口查询数据库2012。数据库2012记录了分布式文件***中的待处理文件在分布式文件***的路径与各个块的块号的第一对应关系,以及各个块的块号与各个块所在的数据存储节点的网络地址的第二对应关系。
在分布式存储***中,待处理文件以碎片形式存储在数据存储节点的数据库中,其中碎片指不同的块数据,每一块数据对应一块号,元数据管理节点记录分布式存储***中所有文件的路径与各个块的块号之间的对应关系,以及每一块号分别对应存储于哪一数据存储节点的数据库。
数据存储节点101设置有流处理计算单元1011和数据库1012,数据库1012记录有块数据以及块号与块数据之间的对应关系,流处理计算单元1011可访问数据库1012,通过块号从数据库1012获取对应的块数据。
在图1中,数据存储节点102和103与数据存储节点101具有类似结构,区别在于自身数据库记录的块数据不相同,于此不作赘述。
举例而言,分布式文件***可通过Hadoop实现,数据库2012、数据库1012、数据库1022……以及数据库1032可通过Hbase(Hadoop Database,Hadoop数据库)实现,元数据管理单元2011可为Hbase数据库的hmaster进程。
在本发明实施例中,客户端301和流处理管理单元302可设置在同一主机上,并通过网络与元数据管理节点201和数据存储节点101、102……103分别建立数据连接。
在一些示例中,客户端301和流处理管理单元302也可设置在不同主机上,本发明实施例对此不作限定。
为了便于理解,可参见图2,图2是根据本发明实施例的流处理***的另一结构示意图,如图2所示,客户端301和流处理管理单元302设置在主机10上,主机10还包括操作***303和硬件304,硬件304用于承载操作***303的运行,硬件304包括物理网卡3041,客户端301和流处理管理单元302分别以进程的形式运行在操作***303上,并通过物理网卡3041访问网络50。
并且,元数据管理节点201包括数据库2012、元数据管理单元2011、操作***2013和硬件2014,数据库2012和元数据管理单元2011分别以进程的形式运行在操作***2013上,硬件2014用于承载操作***2013的运行,硬件2014包括物理网卡20141,物理网卡20141接入网络50,元数据管理单元2011提供接口,外部设备可通过接口来访问数据库2012。
并且,数据存储节点101包括数据1012、流处理计算单元1011、操作***1013以及硬件1014,数据库1012和流处理计算单元1011分别以进程的形式运行在操作***1013上,硬件1014用于承载操作***2013的运行,硬件1014包括物理网卡10141,物理网卡10141接入网络50,在本发明实施例中,流处理计算单元1011可访问数据库1012。
数据存储节点102和103的结构与数据存储节点101类似,于此不作赘述。
举例而言,流处理管理单元302与客户端301、元数据管理单元2011和各流处理计算单元101、1021、……、以及1031之间可通过RPC(Remote Procedure Call Protocol,远程过程调用协议)实现通信。
基于以上架构,在本发明实施例提供一种流处理方法,流处理管理单元302接收客户端301发送的流处理任务,其中流处理任务包括流处理逻辑和待处理文件在分布式文件***的路径;流处理管理单元302从元数据管理节点201获取路径对应的各个块的块号,以及各个块的块号所在的数据存储节点的网络地址;流处理管理单元302分别将流处理逻辑和与各网络地址对应的块号发送至对应的数据存储节点的流处理单元;流处理计算单元从所在的数据存储节点获取接收到的块号对应的块数据,针对接收到的块号对应的块数据执行流处理逻辑。
由于本发明实施例将流处理计算单元分布设置在各数据存储节点上,并由流处理管理单元根据待处理文件的路径将流处理任务发送到对应的数据存储节点,由对应的数据存储节点上的流处理计算单元直接在本地读取待处理文件对应的块数据,并将读取到的块数据运行流处理逻辑,由于流处理计算单元本地读取待处理文件,因此可克服因流处理***与数据存储节点之间的网络传输速度较低而影响流处理的速度的技术问题。
为了进一步清楚说明,以下请参见图3,图3是根据本发明实施例的流处理方法的数据交互图,如图3所示,流处理方法包括以下步骤:
步骤401:流处理管理单元302接收客户端301发送的流处理任务,其中流处理任务包括流处理逻辑和待处理文件在分布式文件***的路径。
举例而言,客户端301可为apache flink***中的client进程,流处理管理单元302可为apache flink***中的job manager进程。
步骤402:流处理管理单元302向元数据管理节点201发送查询请求,其中,查询请求携带有待处理文件在分布式文件***的路径。
举例而言,查询请求包括输入参数和查询指令,流处理管理单元302以待处理文件在分布式文件***的路径为输入参数,并将输入参数及控制指令发送至元数据管理节点201的元数据管理单元2011提供的用于访问数据库2012的接口中。
步骤403:元数据管理节点201根据查询请求返回路径对应的各个块的块号以及各个块对应的数据存储节点的网络地址至流处理管理单元302。
承上可知,元数据管理节点201的数据库2012记录有待处理文件在分布式文件***的路径与各个块的块号的第一对应关系和各个块的块号与各个块所在的数据存储节点的网络地址的第二对应关系,因此,元数据管理节点201的流处理管理单元302根据待处理文件在分布式文件***的路径从第一对应关系获取各个块的块号,并根据各个块的块号从第二对应关系获取各个块所在的数据存储节点的网络地址。
假设流处理管理单元302获取的块号分别为块号1和块号2,值得注意的是,在实际应用中,块号包括多个,于此为简要说明,仅以两个块号为例进行说明,流处理管理单元302根据块号1查询到数据存储节点101的网络地址A,根据块号2查询到数据存储节点102的网络地址B。
步骤404:流处理管理单元302将流处理逻辑和块号1发送至流处理计算单元1011。
在本步骤中,流处理管理单元302根据块号1查询到数据存储节点101的网络地址A之后,将流处理任务和网络地址A对应的块号1发送至数据存储节点101的流处理计算单元1011。
步骤405:流处理管理单元302将流处理逻辑和块号2发送至流处理计算单元1021。
在本步骤中,流处理管理单元302根据块号2查询到数据存储节点102的网络地址B之后,将流处理任务和网络地址B对应的块号2发送至数据存储节点102的流处理计算单元1021。
在步骤404和405中,流处理计算单元1011可例如为apache flink***中的一个task manager进程,流处理计算单元1021可例如为apache flink***中的另一个taskmanager进程。
步骤406:流处理计算单元1011从所在的数据存储节点101获取接收到的块号1对应的块数据,针对接收到的块号1对应的块数据执行流处理逻辑。
在本步骤中,流处理计算单元1011从所在的数据存储节点101的数据库1012获取从流处理管理单元302接收到的块号1对应的块数据,并针对块号1对应的块数据执行流处理逻辑。
在一些示例中,数据存储节点101进一步设置有数据管理单元,数据管理单元用于访问数据库1012以管理数据库1012中的块数据。
举例而言,分布式文件***可为Hadoop,Hadoop的数据库通过Hbase数据库实现,元数据管理单元2011为Hbase数据库的Hmaster进程,流处理计算单元设置为程序库,数据管理单元通过加载程序库执行流处理计算单元的功能。
进一步,数据管理单元例如为Hbase数据库的HReigonServer进程,HReigonServer进程将task manager进程嵌入到HReigonServer进程中,task manager进程可设置为格式是jar包或so文件的程序库,并提供启动接口,HReigonServer进程在加载程序库之后通过运行启动接口即可实现task manager进程的功能。
由于在本发明实施例中,实现task manager进程的功能的HReigonServer进程可在本地读取数据库1012的块数据,因此获取块数据的过程可避免受到外部网络性能的影响,且由于HReigonServer进程在进程内直接访问数据库1012,即直接从内存读取块数据,因此获取块数据的速度更快,可有效提高流处理的效率。
在另一些示例中,数据管理单元与流处理计算单元1011可同时运行在操作***1013,流处理计算单元1011通过数据管理单元提供的接口访问数据库1012,在该些示例中,虽然不是通过HReigonServer进程在进程内直接访问数据库1012,但流处理计算单元1011可在本地访问数据库1012,亦可避免到外部网络性能的影响。
步骤407:流处理计算单元1021从所在的数据存储节点102获取接收到的块号2对应的块数据,针对接收到的块号2对应的块数据执行流处理逻辑。
与上一步骤类似,在一些示例中,数据存储节点102设置有数据管理单元,数据管理单元用于访问数据库1022以管理块数据。分布式文件***可为Hadoop,Hadoop的数据库通过Hbase数据库实现,元数据管理单元2011为Hbase数据库的Hmaster进程,流处理计算单元1011设置为程序库,数据管理单元通过加载程序库执行流处理计算单元的功能。
进一步,数据管理单元例如为Hbase数据库的HReigonServer进程,HReigonServer进程将task manager进程嵌入到HReigonServer进程中,task manager进程可设置为格式是jar包或so文件的程序库,并提供启动接口,HReigonServer进程在加载程序库之后通过运行启动接口即可实现task manager进程的功能。
由于在本发明实施例中,实现task manager进程的功能的HReigonServer进程可在本地读取数据库1022的块数据,因此获取块数据的过程可避免受到外部网络性能的影响,且由于HReigonServer进程在进程内直接访问数据库1022,因此获取块数据的速度更快,可有效提高流处理的效率。
在另一些示例中,数据管理单元与流处理计算单元1021可同时运行在操作***1023,流处理计算单元1021通过数据管理单元提供的接口访问数据库1022,在该些示例中,虽然不是通过HReigonServer进程在进程内直接访问数据库1012,但流处理计算单元1021可在本地访问数据库1022,亦可避免到外部网络性能的影响。
步骤408:流处理计算单元将对块号1对应的块数据执行流处理逻辑获取的第一处理结果发送至流处理管理单元302。
步骤409:流处理计算单元将对块号2对应的块数据执行流处理逻辑获取的第二处理结果发送至流处理管理单元302。
综上,由于本发明实施例将流处理计算单元分布设置在各数据存储节点上,并由流处理管理单元根据待处理文件的路径将流处理任务发送到对应的数据存储节点,由对应的数据存储节点上的流处理计算单元直接在本地读取待处理文件对应的块数据,并将读取到的块数据运行流处理逻辑,由于流处理计算单元本地读取待处理文件,因此可克服因流处理***与数据存储节点之间的网络传输速度较低而影响流处理的速度的技术问题。
并且,由于待处理文件被分散为块数据,分别在不同的流处理计算单元并行执行流处理逻辑,因此可以进一步加快流处理速度,提高处理效率。
值得注意的是,在本发明的可选实施例中,流处理***90还可以基于Storm、Spark或Samza架构实现。
以下请参见图4,图4是根据本发明实施例的流处理管理单元的装置结构示意图,如图4所示,流处理管理单元302包括:
接收模块601,用于接收客户端发送的流处理任务,其中流处理任务包括流处理逻辑和待处理文件在分布式文件***的路径,分布式文件***包括元数据管理节点和多个数据存储节点,每一数据存储节点设置有流处理计算单元;
查询模块602,用于从元数据管理节点获取路径对应的各个块的块号,以及各个块所在的数据存储节点的网络地址;
发送模块603,用于分别将流处理逻辑和各个块的块号发送至各个块所在的数据存储节点的流处理单元。
可选地,接收单元601还用于接收流处理计算单元发送的执行流处理逻辑获取的处理结果。
可选地,元数据管理节点记录有待处理文件在分布式文件***的路径与各个块的块号的第一对应关系,各个块的块号与各个块所在的数据存储节点的网络地址的第二对应关系,查询模块602具体用于:
根据待处理文件在分布式文件***的路径从第一对应关系获取各个块的块号;
根据各个块的块号从第二对应关系获取各个块所在的数据存储节点的网络地址。
以下请参见图5,图5是根据本发明实施例的主机的装置结构示意图,如图5所示,主机50包括存储器502、处理器501和总线503,存储器502、处理器501与总线503连接,存储器502存储有程序指令,处理器501执行程序指令以实现上述流处理***中的流处理管理单元302的功能。
由于本发明实施例将流处理计算单元分布设置在各数据存储节点上,并由流处理管理单元根据待处理文件的路径将流处理任务发送到对应的数据存储节点,由对应的数据存储节点上的流处理计算单元直接在本地读取待处理文件对应的块数据,并将读取到的块数据运行流处理逻辑,由于流处理计算单元本地读取待处理文件,因此可克服因流处理***与数据存储节点之间的网络传输速度较低而影响流处理的速度的技术问题。
并且,由于待处理文件被分散为块数据,分别在不同的流处理计算单元并行执行流处理逻辑,因此可以进一步加快流处理速度,提高处理效率。
需说明的是,以上描述的任意装置实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部进程来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,进程之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
所属领域的技术人员可以清楚地了解到,上述描述的***、装置或单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种流处理方法,其特征在于,所述方法应用于流处理***,所述流处理***包括流处理管理单元以及流处理计算单元,所述方法包括:
所述流处理管理单元接收客户端发送的流处理任务,其中所述流处理任务包括流处理逻辑和待处理文件在分布式文件***的路径,所述分布式文件***包括元数据管理节点和多个数据存储节点,每一所述数据存储节点设置有流处理计算单元;
所述流处理管理单元从所述元数据管理节点获取所述待处理文件的路径对应的各个块的块号,以及各个块所在的数据存储节点的网络地址;
所述流处理管理单元分别将所述流处理逻辑和所述各个块的块号发送至各个块所在的数据存储节点的流处理单元;
所述流处理计算单元从所在的数据存储节点获取接收到的所述块号对应的块数据,针对所述接收到的所述块号对应的块数据执行所述流处理逻辑。
2.根据权利要求1所述的方法,其特征在于,所述数据存储节点设置有数据管理单元,所述流处理计算单元设置为程序库,所述数据管理单元通过加载所述程序库执行所述流处理计算单元的功能。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述流处理计算单元将执行所述流处理逻辑获取的处理结果发送至所述流处理管理单元。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述元数据管理节点记录有所述待处理文件在所述分布式文件***的路径与各个块的块号的第一对应关系,所述流处理管理单元从所述元数据管理节点获取所述路径对应的各个块的块号,以及各个块所在的数据存储节点的网络地址具体包括:
所述流处理管理单元根据所述待处理文件在所述分布式文件***的路径从所述第一对应关系获取各个块的块号。
5.根据权利要求4所述的方法,其特征在于,所述元数据管理节点记录有各个块的块号与各个块所在的数据存储节点的网络地址的第二对应关系,所述流处理管理单元从所述元数据管理节点获取所述路径对应的各个块的块号,以及各所述个块的块号所在的数据存储节点的网络地址具体包括:
所述流处理管理单元根据各个块的块号从所述第二对应关系获取各个块所在的数据存储节点的网络地址。
6.一种流处理***,其特征在于,包括流处理管理单元以及流处理计算单元,
所述流处理管理单元,用于接收客户端发送的流处理任务,其中所述流处理任务包括流处理逻辑和待处理文件在分布式文件***的路径,所述分布式文件***包括元数据管理节点和多个数据存储节点,每一所述数据存储节点设置有流处理计算单元;
所述流处理管理单元,还用于从所述元数据管理节点获取所述路径对应的各个块的块号,以及各个块所在的数据存储节点的网络地址;
所述流处理管理单元,还用于分别将所述流处理逻辑和所述各个块的块号发送至各个块所在的数据存储节点的流处理单元;
所述流处理计算单元,用于从所在的数据存储节点获取接收到的所述块号对应的块数据,针对所述接收到的所述块号对应的块数据执行所述流处理逻辑。
7.根据权利要求6所述的***,其特征在于,所述数据存储节点设置有数据管理单元,所述流处理计算单元设置为程序库,所述数据管理单元通过加载所述程序库执行所述流处理计算单元的功能。
8.根据权利要求6所述的***,其特征在于,
所述流处理计算单元,还用于将执行所述流处理逻辑获取的处理结果发送至所述流处理管理单元。
9.根据权利要求6所述的***,其特征在于,所述元数据管理节点记录有所述待处理文件在所述分布式文件***的路径与各个块的块号的第一对应关系,所述流处理管理单元具体用于:
根据所述待处理文件在所述分布式文件***的路径从所述第一对应关系获取各个块的块号。
10.根据权利要求9所述的***,其特征在于,所述元数据管理节点记录有各所述块号与各所述块号所在的数据存储节点的网络地址的第二对应关系,所述流处理管理单元具体用于:
根据各个块的块号从所述第二对应关系获取各个块所在的数据存储节点的网络地址。
11.一种流处理管理单元,其特征在于,包括:
接收模块,用于接收客户端发送的流处理任务,其中所述流处理任务包括流处理逻辑和待处理文件在分布式文件***的路径,所述分布式文件***包括元数据管理节点和多个数据存储节点,每一所述数据存储节点设置有流处理计算单元;
查询模块,用于从所述元数据管理节点获取所述路径对应的各个块的块号,以及各个块所在的数据存储节点的网络地址;
发送模块,用于分别将所述流处理逻辑和所述各个块的块号发送至各个块所在的数据存储节点的流处理单元。
12.一种主机,其特征在于,包括存储器、处理器和总线,所述存储器、所述处理器与所述总线连接,所述存储器存储有程序指令,所述处理器执行所述程序指令以使得所述主机执行下述步骤:
接收客户端发送的流处理任务,其中所述流处理任务包括流处理逻辑和待处理文件在分布式文件***的路径,所述分布式文件***包括元数据管理节点和多个数据存储节点,每一所述数据存储节点设置有流处理计算单元;
从所述元数据管理节点获取所述路径对应的各个块的块号,以及各个块所在的数据存储节点的网络地址;
分别将所述流处理逻辑和所述各个块的块号发送至各个块所在的数据存储节点的流处理单元。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710233425.0A CN108696559B (zh) | 2017-04-11 | 2017-04-11 | 流处理方法及装置 |
PCT/CN2018/082641 WO2018188607A1 (zh) | 2017-04-11 | 2018-04-11 | 流处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710233425.0A CN108696559B (zh) | 2017-04-11 | 2017-04-11 | 流处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108696559A true CN108696559A (zh) | 2018-10-23 |
CN108696559B CN108696559B (zh) | 2021-08-20 |
Family
ID=63792265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710233425.0A Active CN108696559B (zh) | 2017-04-11 | 2017-04-11 | 流处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108696559B (zh) |
WO (1) | WO2018188607A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110046131A (zh) * | 2019-01-23 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 数据的流式处理方法、装置及分布式文件***hdfs |
CN111290744A (zh) * | 2020-01-22 | 2020-06-16 | 北京百度网讯科技有限公司 | 流式计算作业处理方法、流式计算***及电子设备 |
CN111435938A (zh) * | 2019-01-14 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 一种数据请求的处理方法、装置及其设备 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1886739A (zh) * | 2003-10-27 | 2006-12-27 | 特博数据实验室公司 | 分布式存储器类型的信息处理*** |
CN101089819A (zh) * | 2006-06-13 | 2007-12-19 | 国际商业机器公司 | 用于动态稳定流处理***的方法和上游处理节点 |
CN101741885A (zh) * | 2008-11-19 | 2010-06-16 | 珠海市西山居软件有限公司 | 分布式***及分布式***处理任务流的方法 |
US20110313934A1 (en) * | 2010-06-21 | 2011-12-22 | Craig Ronald Van Roy | System and Method for Configuring Workflow Templates |
US8150889B1 (en) * | 2008-08-28 | 2012-04-03 | Amazon Technologies, Inc. | Parallel processing framework |
CN102456185A (zh) * | 2010-10-29 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种分布式工作流处理方法及分布式工作流引擎*** |
CN102467411A (zh) * | 2010-11-19 | 2012-05-23 | 金蝶软件(中国)有限公司 | 一种工作流处理及工作流代理方法、装置和*** |
CN102542367A (zh) * | 2010-12-10 | 2012-07-04 | 金蝶软件(中国)有限公司 | 基于领域模型的云计算网络工作流处理方法、装置和*** |
US20130086116A1 (en) * | 2011-10-04 | 2013-04-04 | International Business Machines Corporation | Declarative specification of data integraton workflows for execution on parallel processing platforms |
CN103309867A (zh) * | 2012-03-09 | 2013-09-18 | 句容智恒安全设备有限公司 | 基于Hadoop平台的Web数据挖掘*** |
US20130253977A1 (en) * | 2012-03-23 | 2013-09-26 | Commvault Systems, Inc. | Automation of data storage activities |
CN104063486A (zh) * | 2014-07-03 | 2014-09-24 | 四川中亚联邦科技有限公司 | 一种大数据分布式存储方法和*** |
CN104536814A (zh) * | 2015-01-16 | 2015-04-22 | 北京京东尚科信息技术有限公司 | 一种处理工作流的方法和*** |
CN104657497A (zh) * | 2015-03-09 | 2015-05-27 | 国家电网公司 | 一种基于分布式计算的海量用电信息并行计算***及方法 |
CN105468756A (zh) * | 2015-11-30 | 2016-04-06 | 浪潮集团有限公司 | 一种海量数据处理***的设计和实现方法 |
CN105608077A (zh) * | 2014-10-27 | 2016-05-25 | 青岛金讯网络工程有限公司 | 一种大数据分布式存储方法和*** |
CN106155791A (zh) * | 2016-06-30 | 2016-11-23 | 电子科技大学 | 一种分布式环境下的工作流任务调度方法 |
CN106462605A (zh) * | 2014-05-13 | 2017-02-22 | 云聚公司 | 流媒体内容的分布式安全数据存储和传输 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6415297B1 (en) * | 1998-11-17 | 2002-07-02 | International Business Machines Corporation | Parallel database support for workflow management systems |
US20090125553A1 (en) * | 2007-11-14 | 2009-05-14 | Microsoft Corporation | Asynchronous processing and function shipping in ssis |
CN106339415B (zh) * | 2016-08-12 | 2019-08-23 | 北京奇虎科技有限公司 | 数据的查询方法、装置及*** |
-
2017
- 2017-04-11 CN CN201710233425.0A patent/CN108696559B/zh active Active
-
2018
- 2018-04-11 WO PCT/CN2018/082641 patent/WO2018188607A1/zh active Application Filing
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1886739A (zh) * | 2003-10-27 | 2006-12-27 | 特博数据实验室公司 | 分布式存储器类型的信息处理*** |
CN101089819A (zh) * | 2006-06-13 | 2007-12-19 | 国际商业机器公司 | 用于动态稳定流处理***的方法和上游处理节点 |
US8150889B1 (en) * | 2008-08-28 | 2012-04-03 | Amazon Technologies, Inc. | Parallel processing framework |
CN101741885A (zh) * | 2008-11-19 | 2010-06-16 | 珠海市西山居软件有限公司 | 分布式***及分布式***处理任务流的方法 |
US20110313934A1 (en) * | 2010-06-21 | 2011-12-22 | Craig Ronald Van Roy | System and Method for Configuring Workflow Templates |
CN102456185A (zh) * | 2010-10-29 | 2012-05-16 | 金蝶软件(中国)有限公司 | 一种分布式工作流处理方法及分布式工作流引擎*** |
CN102467411A (zh) * | 2010-11-19 | 2012-05-23 | 金蝶软件(中国)有限公司 | 一种工作流处理及工作流代理方法、装置和*** |
CN102542367A (zh) * | 2010-12-10 | 2012-07-04 | 金蝶软件(中国)有限公司 | 基于领域模型的云计算网络工作流处理方法、装置和*** |
US20130086116A1 (en) * | 2011-10-04 | 2013-04-04 | International Business Machines Corporation | Declarative specification of data integraton workflows for execution on parallel processing platforms |
CN103309867A (zh) * | 2012-03-09 | 2013-09-18 | 句容智恒安全设备有限公司 | 基于Hadoop平台的Web数据挖掘*** |
US20130253977A1 (en) * | 2012-03-23 | 2013-09-26 | Commvault Systems, Inc. | Automation of data storage activities |
CN106462605A (zh) * | 2014-05-13 | 2017-02-22 | 云聚公司 | 流媒体内容的分布式安全数据存储和传输 |
CN104063486A (zh) * | 2014-07-03 | 2014-09-24 | 四川中亚联邦科技有限公司 | 一种大数据分布式存储方法和*** |
CN105608077A (zh) * | 2014-10-27 | 2016-05-25 | 青岛金讯网络工程有限公司 | 一种大数据分布式存储方法和*** |
CN104536814A (zh) * | 2015-01-16 | 2015-04-22 | 北京京东尚科信息技术有限公司 | 一种处理工作流的方法和*** |
CN104657497A (zh) * | 2015-03-09 | 2015-05-27 | 国家电网公司 | 一种基于分布式计算的海量用电信息并行计算***及方法 |
CN105468756A (zh) * | 2015-11-30 | 2016-04-06 | 浪潮集团有限公司 | 一种海量数据处理***的设计和实现方法 |
CN106155791A (zh) * | 2016-06-30 | 2016-11-23 | 电子科技大学 | 一种分布式环境下的工作流任务调度方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111435938A (zh) * | 2019-01-14 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 一种数据请求的处理方法、装置及其设备 |
CN110046131A (zh) * | 2019-01-23 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 数据的流式处理方法、装置及分布式文件***hdfs |
CN111290744A (zh) * | 2020-01-22 | 2020-06-16 | 北京百度网讯科技有限公司 | 流式计算作业处理方法、流式计算***及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2018188607A1 (zh) | 2018-10-18 |
CN108696559B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6732798B2 (ja) | コンピュートクラスタ内のリソースインスタンスグループの自動スケーリング | |
CN109416643B (zh) | 应用程序迁移*** | |
CN109643312B (zh) | 托管查询服务 | |
JP6974218B2 (ja) | ストレージシステム及びその動作方法 | |
CN109074377B (zh) | 用于实时处理数据流的受管理功能执行 | |
CN109328335B (zh) | 智能配置发现技术 | |
JP4536817B2 (ja) | エンドユーザによるワークフローの動的な再配置 | |
WO2016121754A1 (ja) | システム、仮想化制御装置、仮想化制御装置の制御方法及びプログラム | |
CN107015989A (zh) | 数据处理方法和装置 | |
US20120246157A1 (en) | Method and system for dynamically tagging metrics data | |
CN111258978A (zh) | 一种数据存储的方法 | |
CN108696559A (zh) | 流处理方法及装置 | |
US9912545B2 (en) | High performance topology resolution for non-instrumented nodes | |
KR101378348B1 (ko) | 프라이빗 클라우드 인프라 기반 하둡 클러스터의 기본 프로토타입 | |
US10706073B1 (en) | Partitioned batch processing for a usage analysis system | |
CN112199426B (zh) | 微服务架构下的接口调用管理方法、装置、服务器及介质 | |
US10348596B1 (en) | Data integrity monitoring for a usage analysis system | |
CN109257256A (zh) | 设备监控方法、装置、计算机设备及存储介质 | |
CN114116908A (zh) | 一种数据管理方法、装置及电子设备 | |
CN107347024A (zh) | 一种存储操作日志的方法和装置 | |
CN108664503A (zh) | 一种数据归档方法及装置 | |
CN112631996A (zh) | 日志搜索方法及装置 | |
CN111353766A (zh) | 分布式业务***的业务流程处理***及方法 | |
CN112448833A (zh) | 一种多管理域的通信方法和装置 | |
US9547540B1 (en) | Distributed operating system functions for nodes in a rack |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220216 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |