CN105354242A - 分布式数据处理方法及装置 - Google Patents
分布式数据处理方法及装置 Download PDFInfo
- Publication number
- CN105354242A CN105354242A CN201510666183.5A CN201510666183A CN105354242A CN 105354242 A CN105354242 A CN 105354242A CN 201510666183 A CN201510666183 A CN 201510666183A CN 105354242 A CN105354242 A CN 105354242A
- Authority
- CN
- China
- Prior art keywords
- data
- time span
- encapsulation
- described input
- input traffic
- 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
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种分布式数据处理方法及装置,通过针对输入数据流的处理需求设定的数据封装策略,根据该数据封装策略将输入数据流封装为数据单元,在后续数据处理过程中均以封装的数据单元为单位进行数据分发和处理。本发明实施例提供的分布式数据处理方法及装置,通过针对不同的数据处理需求预设合适的封装策略,对数据流进行封装和处理,对于批量数据处理,可以实现较高的数据吞吐量;对于流式数据处理,可以实现较低的数据延时。
Description
技术领域
本发明涉及数据处理技术,尤其涉及一种分布式数据处理方法及装置。
背景技术
近年来人们对于大数据的概念提及越来越多,大数据(bigdata),或称巨量资料、海量资料,是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。对大数据的有效处理,现在工业界和学术界中提出了一些新的并行数据处理技术与系统,按照数据的输入类型不同,我们可以将其分为批量数据处理和流式数据处理。
批量数据处理主要是针对静态数据集合,实现了大规模静态数据的高吞吐处理,以吞吐量大为显著特征,其典型的技术是MapReduce。流式数据处理主要针对持续产生的数据流的快速处理,分别实现不同数据结构、不同计算模式和不同响应时间的数据处理。与此相对应,近来工业界和学术界有把批量数据处理和流式数据处理进行综合的动力和趋势。
然而,随着大数据的深入应用,这种多系统并存的状况导致应用开发和运行管理的麻烦,例如开发人员在多个编程框架上编写应用,运维管理人员维护多个计算系统及其上的应用,抬高了大数据处理的资源成本、时间成本和人员成本。因此融合批量数据处理和流式数据处理的大数据处理成为一个亟待解决的问题。
发明内容
本发明提供一种分布式数据处理方法及装置,其目的就在于提供一种适用多种数据处理要求的数据处理模型,通过针对不同的数据处理需求预设合适的封装策略,对数据流进行封装和处理,可以满足不同的数据处理需求。
本发明实施例提供的分布式数据处理方法,可以应用于分布式数据处理系统,该数据处理系统包括至少一个输入适配和多个处理节点,其中输入适配与处理节点之间通过有向边连接。该方法包括:输入适配接收输入数据流;输入适配根据输入数据流的处理需求设定数据封装策略;输入适配根据数据封装策略将输入数据流封装为数据单元;输入适配将数据单元发送至处理节点进行处理。
本发明实施提供的分布式数据处理装置,可以为分布式数据处理系统中的输入适配,数据处理系统还包括多个处理节点,其中输入适配与处理节点之间通过有向边连接。输入适配包括:接收模块,用于接收输入数据流;设定模块,用于根据输入数据流的处理需求设定数据封装策略;封装模块,用于根据数据封装策略将输入数据流封装为数据单元;发送模块,用于将数据单元发送至处理节点进行处理。
基于上述,本发明实施例提供的分布式数据处理方法及装置,通过针对输入数据流的处理需求设定数据封装策略,根据该数据封装策略将输入数据流封装为数据单元,在后续数据处理过程中均以封装的数据单元为单位进行数据分发和处理。由于不同的数据封装策略实际上是对输入的数据流做不同的分段,小的分段能够降低延迟,但同时增加了附加开销,使系统的吞吐量降低;反之,大的分段能够提高系统的吞吐量,但会增加延迟。因此本发明通过针对不同的数据处理需求设置合适的封装策略,对数据流进行封装和处理,对于批量数据处理,可以进行大的分段,以实现较高的数据吞吐量;对于流式数据处理,可以进行小的分段,以实现较低的数据延时。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种分布式数据处理系统的逻辑模型示意图;
图2为本发明实施例提供的分布式数据处理方法流程图;
图3为本发明实施例提供的分布式数据处理方法的应用示意图;
图4为本发明实施例提供的分布式数据处理装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着互联网的发展和信息的爆炸性增长,为了应对大数据的海量数据处理需求,人们提出和改进新的分布式系统,利用大量廉价的机器提供更高性能的数据处理能力。从MapReduce及Hadoop被提出和广泛使用后,又出现了Spark这种更适合迭代式计算和机器学习算法的批量分布式系统,以及S4、Storm等致力于提供更高实时处理能力的流式处理系统,它们针对于不同的应用场景,各有特点和优势。然而,目前尚没有一种统一的数据处理平台可以满足不同任务的实时性需求,因此,为了满足不同任务的实时性需求,同时实现更高的数据吞吐达到系统资源的有效利用,需要有一种可以灵活地调整系统实时处理能力的数据处理系统。
图1为一种分布式数据处理系统的逻辑模型示意图,如图1所示,该模型是一种基于可调的有向无环图(TunableDirectedAcyclicGraph,简称TDAG)的计算模型,在TDAG模型中,计算单元包含输入适配(InputAdapter)(即IA1、IA2)和算子(Processor)(即P1、P2、P3、P4)两种,用于接收、处理、发送数据。每个计算单元都可以包括多个任务节点,可以并发执行数据处理任务,例如IA11、IA12、……IA1N以及IA21、IA22、……IA2N分别为输入适配IA1、IA2中的任务节点,P11、P12、……P1N以及P21、P22、……P2N分别为算子P1、P2中的任务节点。有向边代表了数据流,计算单元之间通过有向边发送消息。在本发明的下述实施例中,分布式数据处理系统的逻辑模型可以包括至少一个输入适配和多个处理节点,这里的处理节点即为算子,消息是一种以eBag为单元的流式数据片段,而每个eBag带有时序属性信息来表达数据单元之间的时序关系。下面我们将结合图2所示的流程图分别介绍输入适配、算子两种节点,阐述eBag数据流的封装控制策略,并简要说明数据处理的基本流程。
图2为本发明实施例提供的分布式数据处理方法流程图,该方法具体可以应用于图1所示的分布式数据处理系统,该方法具体以输入适配为执行主体。如图2所示,该方法可以包括以下步骤:
S21,接收输入数据流;
S22,根据输入数据流的处理需求设定数据封装策略;
S23,根据数据封装策略将输入数据流封装为eBag;
S24,将eBag发送至处理节点进行处理。
需要说明的是,S21和S22不存在时序上的关系。由于输入的数据流就是待处理的数据流,针对不同的处理需求,可以先接收输入数据流,也可以先根据待处理的数据流的处理需求设定数据封装策略,或者,S21和S22同时进行。另外,还可以根据接收到的输入数据流来判断输入数据流的特点,进一步根据输入数据流的特点设定封装策略,或者根据输入数据流的特点调整、优化预设的封装策略。例如针对需要获得实时的用户发帖量,和需要统计每小时、每天用户发帖总数的处理需求是不同的,因此可以预先根据处理需求设定数据封装策略。
输入适配是模型的数据接收节点,它的主要工作包括两方面:一是预处理,即接收输入并将其翻译为可供模型处理的数据;二是生成eBag,将经过预处理的数据按照一定的封装策略封装为eBag并发送出去。eBag是数据处理系统中进行数据分发和处理的数据单元,具体的封装策略,或者封装粒度可以根据数据应用的特点和数据处理需求按照时间和数据量等条件进行控制。
在大数据处理模型中,可能存在多个数据输入源的问题。针对多输入流的问题,我们按输入类型区分,对于每一种输入需要分别设计一种输入适配:对输入数据类型相同的源,我们逻辑上设计一个输入适配(计算时一个输入适配可能并发为多个任务分布到不同任务节点上);如果输入源类型不同,则需要针对每种输入分别设计输入适配。对于同一个输入适配(逻辑上同一类型输入源对应的一个输入适配)在执行中可能被并发为多个任务并分布到多个任务节点上,每个任务(task)节点都具有相应的节点标识(taskID),例如IA11、IA12、……IA1N以及IA21、IA22、……IA2N。每个输入适配的并发数量由应用程序给定。例如应用程序可以通过taskID指定执行数据封装任务的多个任务节点。
需要说明的是,流式数据是具有时间顺序的数据序列,可以被看成历史数据和不断增加的更新数据的并集。因此,为了便于进行数据的发送和后续处理,通过输入适配封装的每个eBag还应该向其分配时序属性信息epoch来表达数据单元(eBag)之间的时序关系,以及向其分配标识信息eBagID来区分各个数据单元(eBag)。
示例性的,eBag的时序属性信息epoch,可以由输入适配根据数据处理系统的统一逻辑时钟进行分配。这例需要说明的是,逻辑时钟是分布式处理系统的特性,要求的是系统节点进展之间的相对一致性或同步性。只有相关的系统(进程)才需要有逻辑时钟同步,同步的目的是维持事件的顺序性。输入适配为了给eBag增加epoch信息,在封装eBag时,就需要维护一个统一的逻辑时钟来管理和更新epoch信息,并在输入适配向后续的处理节点发送eBag时根据逻辑时钟为eBag配置epoch信息。
如上所述,在一个数据处理应用中可能存在多个输入适配和输入适配并行度大于1的情况,这时需要每个输入适配的任务节点之间配合工作,此时还需要选举一个输入适配作为统一时钟管理器,在每个时序结束时向每个输入适配同步时序信息。
示例性的,eBag的标识信息eBagID,可以由输入适配根据执行数据封装任务的节点的标识信息taskID和eBag的封装顺序进行分配。举例来说,以一个eBagID为IA1i-j的eBag为例,该eBag是由输入适配IA1中的taskID为IA1i的任务节点封装的第j个数据单元。换句话说,也就是每个eBag的标识信息,由taskID和封装顺序(sequenceNum)两部分组成,其中taskID唯一区分了一个任务节点,sequenceNum进一步区分了该任务节点产生的不同eBag。
可以理解的是,在大部分的处理场景中都对系统的处理延迟性能要求比较高,但是我们发现在很多应用中并非是延迟越低越好,而是只要满足一定的延迟要求即可。在本实施例中,通过不同的数据封装策略控制数据粒度,可以为每个应用找到其最佳的性能表现,也可以放松部分性能要求来节约系统资源的使用,同时适应多种不同延迟要求的计算任务的情况。例如我们可能需要获得实时的用户发帖量,也可能需要统计每小时、每天用户发帖总数,对于实时的任务肯定是需要计算延迟在毫秒级最好,但是后者则不需要这么高的数据延迟,只需要每个小时、每天返回计算结果即可,延迟在秒级甚至是分钟级都是可以接受的。通过不同的数据封装策略就可以体现批量数据处理和流式数据处理的差别,以便可以满足批量数据处理和流式数据处理对系统吞吐量和数据延时的不同要求。
由于不同的数据封装策略实际上是对输入的数据流做不同的分段,小的分段能够降低延迟,但同时增加了附加开销,使系统的吞吐量降低;反之,大的分段能够提高系统的吞吐量,但会增加延迟。因此本发明通过针对不同的数据处理需求设置合适的封装策略,对数据流进行封装和处理,对于批量数据处理,可以进行大的分段,以实现较高的数据吞吐量;对于流式数据处理,可以进行小的分段,以实现较低的数据延时。
在输入适配中需要把数据封装为eBag,并作为分发和处理的基本数据单元。而eBag的粒度由输入适配中的封装策略来控制,一般来说可以从时间、数量、大小三个维度对数据粒度进行控制。下面将分别以时间、数量、大小三个维度中的至少一个作为控制条件来进一步解释数据封装的过程。
作为第一种可选的实现方式,可以按照时间长度(epochsize)来控制eBag的粒度。输入适配可以维护一个计时器,将每个计时周期看做一个epoch,每个epoch结束时把数据封装为eBag向后续处理节点发送。这种数据封装策略下输入适配每隔一段时间就封装一个eBag发出,如果某一计时周期内没有输入数据流则不会封装eBag发出。这种策略满足流式数据处理的实时性要求,根据系统的时延要求,设定与时延要求相对应的时间长度,可以避免无限等待。这种策略一般适用在输入数据量不大且流速平稳的应用中,用户只需通过输入适配配置时间长度(epochsize)的大小作为数据封装策略。
作为第二种可选的实现方式,可以按照数据单元的大小来控制eBag的粒度。此时,输入适配同样需要维护一个计时器,将每个计时周期看做一个epoch,以便向每个eBag配置epoch信息。此时存在以下两种情况:
1)接收的输入数据流的数据大小达到预设的数据封装大小的阀值,但计时周期没有结束或刚好结束,此时,将已经接收到的达到预设的数据封装大小阀值的输入数据流封装为一个eBag,并重新计时下一个计时周期;
2)接收的输入数据流的数据大小未达到预设的数据封装大小的阀值,但计时周期结束,此时,将计时周期内的输入数据流封装为一个eBag。
这种数据封装策略可以既保证实时性,又一定地提高了数据吞吐量,可用于数据率高的流式数据处理,高效地应对突发数据流。这种策略配合基于分布式文件系统(HadoopDistributedFileSystem,简称HDFS)的数据存储系统比较合适,可以把每个数据块封装为一个eBag进行处理。此时用户需要通过输入适配配置数据单元大小阈值和计时周期这两个参数作为数据封装策略。
作为第三种可选的实现方式,可以按照数据单元的数量来控制eBag的粒度。这里的数据单元的数量是指信息的条数,例如一条微博或一个发帖均为一条数据,显然每条数据的数据大小是不固定的,举例来说,一条只有文字信息的微博的数据大小可能只能达到千字节(KiloByte,简称KB),即KB级,而一条包含图片信息的微博的数据大小可能达到兆字节(MebiByte简称MB),即MB级。此时,输入适配同样需要维护一个计时器,将每个计时周期看做一个epoch,以便向每个eBag配置epoch信息。此时存在以下两种情况:
1)接收的输入数据流的数据条目达到预设的数据封装数量的阀值,但计时周期没有结束或刚好结束,此时,将已经接收到的达到预设的数据封装数量阀值的输入数据流封装为一个eBag,并重新计时下一个计时周期;
2)接收的输入数据流的数据条目未达到预设的数据封装数量的阀值,但计时周期结束,此时,将计时周期内的输入数据流封装为一个eBag。
这种数据封装策略,需要用户通过输入适配配置数据单元数量阈值和计时周期这两个参数。
作为第四种可选的实现方式,可以按照数据单元的大小以及数量来控制eBag的粒度。同样的,此时,输入适配也需要维护一个计时器,将每个计时周期看做一个epoch,以便向每个eBag配置epoch信息。此时存在以下三种情况:
1)接收的输入数据流的数据条目达到预设的数据封装数量的阀值,但计时周期没有结束或刚好结束,而且没有达到或刚好达到预设的数据封装大小阀值,此时,将已经接收到的达到预设的数据封装数量阀值的输入数据流封装为一个eBag,并重新计时下一个计时周期;
2)接收的输入数据流的数据条目未达到预设的数据封装数量的阀值,但计时周期结束,而且没有达到或刚好达到预设的数据封装大小阀值,此时,将计时周期内的输入数据流封装为一个eBag。
3)接收的输入数据流的数据条目未达到预设的数据封装数量的阀值,但达到预设的数据封装大小的阀值,而且计时周期没有结束或刚好结束,此时,将已经接收到的达到预设的数据封装大小阀值的输入数据流封装为一个eBag,并重新计时下一个计时周期。
这种数据封装策略,有利于根据具体数据处理系统的应用特点,不断优化数据封装粒度。此时用户需要通过输入适配配置数据单元数量阈值、大小阀值和计时周期三个参数。
可以理解的是,对于上述需要进行数据大小或数据条目的计数的封装策略中,由于输入数据流被封装为eBag后会被发送到eBag缓存队列或后续的处理节点,输入适配中的数据大小或数据条目也就相应的被清零了,输入适配会自动重新进行数据大小和数据数量的计数。
为了更好地解释上述实施例提供的分布式数据处理方法,下面将通过图3所示的具体的应用示例进行进一步说明。这些示例是用来说明,而并非用来限制本发明。
图3为本发明实施例提供的分布式数据处理方法的应用示意图,如图3所示,这是一个单词计数(WordCount)实现原理图。我们通过图3中WordCount应用来进一步解释通过不同的数据封装策略可以达到不同的实时性要求。
WordCount是一个典型的多重实时性的计算任务,在推特(Twitter)数据分析中的热词统计、事件检测和话题覆盖分析等应用中WordCount都是基本的前期处理过程,因此它在不同的任务中的数据延迟要求不尽相同。
图3所示的用于实现WordCount的数据处理模型与图1所示的TDAG模型相同,包括输入适配IA和算子PA、PB两种计算节点,其中PA为分词节点,输入为原始语句(文本),输出为word数据;PB为计数节点,输入为word数据,输出为各个word的统计个数。可以理解的是,无论是输入适配IA和算子PA、PB均可以包括多个任务节点。具体的进行单词计数的处理流程为:
第一步:IA接收输入的原始语句;
第二步:IA根据数据封装策略将原始语句封装成eBag,如果是批量处理,则将文本文件的一个数据块封装为一个eBag,例如64MB的数据块;如果是流式处理,则可以根据时间将一个时间长度内的流式数据封装为一个eBag。
第三步:分词节点PA对输入的包含word文本的eBag数据流进行处理,输出word数据。
第四步:计数节点PB,对输入的word数据进行处理,输出各个word的统计个数。如果是批量处理,则将每个word对应的所有计数做加和计算,并输出结果;如果是流式处理,维护一个word的频度队列,对于每一个word,先查看是否存在于队列中,如果存在,则给队列中的对应word的数量加1,否则加入一个新的word到队列中,对应的计数值为1,定期输出word的频度队列。
通过具体的实验表明,在WordCount应用中,我们可以实现对于HDFS文件块的读入,吞吐量可以达到单节点100,000记录/秒,而对于流式数据的处理,我们可以达到56ms的处理延迟,这一点比同等情况下使用Storm实现WordCount的77ms延迟更低。
图4为本发明实施例提供的分布式数据处理装置的示意图,本实施例提供的分布式数据处理装置可以用来实现本发明图2所示实施例提供的分布式数据处理方法,此处不再赘述。该装置可以为分布式数据处理系统中的输入适配,同时数据处理系统还包括多个处理节点,其中输入适配与处理节点之间通过有向边连接。如图4所示,该输入适配包括接收模块41、设定模块42、封装模块43和发送模块44。
其中,接收模块41可以用于接收输入数据流;设定模块42可以用于根据输入数据流的处理需求设定数据封装策略;封装模块43可以用于根据数据封装策略将输入数据流封装为数据单元;发送模块44可以用于将数据单元发送至处理节点进行处理。
在具体实施过程中,作为第一种可能的实施方式,数据封装策略包括时间长度,此时封装模块43具体可以用于:在每个所述时间长度内,若在该时间长度内有输入数据流,则将该时间长度内的所述输入数据流封装为一个数据单元。
在具体实施过程中,作为第二种可能的实施方式,数据封装策略包括时间长度和数据封装大小,此时封装模块43具体可以用于:当输入数据流的数据大小达到数据封装大小,但未达到或刚好达到时间长度时,将达到数据封装大小的输入数据流封装为一个数据单元,并重新计时所述时间长度;当输入数据流的数据大小未达到数据封装大小,但达到时间长度时,将时间长度内的输入数据流封装为一个数据单元。
在具体实施过程中,作为第三种可能的实施方式,数据封装策略包括时间长度、数据封装大小和数据封装数量,此时封装模块43具体可以用于:当输入数据流的数据条目达到数据封装数量,但未达到或刚好达到时间长度,且未达到或刚好达到数据封装大小时,将达到数据封装数量的输入数据流封装为一个数据单元,并重新计时时间长度;当输入数据流的数据条目未达到数据封装数量,但达到时间长度,且未达到或刚好达到数据封装大小时,将时间长度内的输入数据流封装为一个数据单元;当输入数据流的数据条目未达到数据封装数量,但达到数据封装大小,且未达到或刚好达到时间长度时,将达到数据封装大小的输入数据流封装为一个数据单元,并重新计时时间长度。
进一步的,在具体实施过程中,作为一种较佳的实施方式,该输入适配还可以包括分配模块45,可以用于:根据数据处理系统的逻辑时钟为数据单元设置时序属性信息,以及根据输入适配的任务节点标识信息和数据单元的封装顺序为数据单元设置标识信息。
本实施例提供的分布式数据处理装置可以用来实现本发明图2所示实施例提供的分布式数据处理方法,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种分布式数据处理方法,所述方法应用于分布式数据处理系统,所述数据处理系统包括至少一个输入适配和多个处理节点,所述输入适配与所述处理节点之间通过有向边连接,其特征在于,所述方法包括:
输入适配接收输入数据流;
所述输入适配根据所述输入数据流的处理需求设定数据封装策略;
所述输入适配根据所述数据封装策略将所述输入数据流封装为数据单元;
所述输入适配将所述数据单元发送至处理节点进行处理。
2.根据权利要求1所述的方法,其特征在于,所述数据封装策略包括时间长度,所述输入适配根据预设的数据封装策略将所述输入数据流封装为多个数据单元,包括:
在每个所述时间长度内,若在该时间长度内有输入数据流,则所述输入适配将该时间长度内的所述输入数据流封装为一个数据单元。
3.根据权利要求1所述的方法,其特征在于,所述数据封装策略包括时间长度和数据封装大小,所述输入适配根据预设的数据封装策略将所述输入数据流封装为多个数据单元,包括:
当所述输入数据流的数据大小达到所述数据封装大小,但未达到或刚好达到所述时间长度时,则所述输入适配将达到所述数据封装大小的所述输入数据流封装为一个数据单元,并重新计时所述时间长度;
当所述输入数据流的数据大小未达到所述数据封装大小,但达到所述时间长度时,则所述输入适配将所述时间长度内的所述输入数据流封装为一个数据单元。
4.根据权利要求1所述的方法,其特征在于,所述数据封装策略包括时间长度、数据封装大小和数据封装数量,所述输入适配根据预设的数据封装策略将所述输入数据流封装为多个数据单元,包括:
当所述输入数据流的数据条目达到所述数据封装数量,但未达到或刚好达到所述时间长度,且未达到或刚好达到所述数据封装大小时,则所述输入适配将达到所述数据封装数量的所述输入数据流封装为一个数据单元,并重新计时所述时间长度;
当所述输入数据流的数据条目未达到所述数据封装数量,但达到所述时间长度,且未达到或刚好达到所述数据封装大小时,则所述输入适配将所述时间长度内的所述输入数据流封装为一个数据单元;
当所述输入数据流的数据条目未达到所述数据封装数量,但达到所述数据封装大小,且未达到或刚好达到所述时间长度时,则所述输入适配将达到所述数据封装大小的所述输入数据流封装为一个数据单元,并重新计时所述时间长度。
5.根据权利要求1~4任一项所述的方法,其特征在于,所述输入适配根据所述数据封装策略将所述输入数据流封装为数据单元之后,还包括:
所述输入适配根据所述数据处理系统的逻辑时钟为所述数据单元设置时序属性信息;
所述输入适配根据所述输入适配的任务节点标识信息和所述数据单元的封装顺序为所述数据单元设置标识信息。
6.一种分布式数据处理装置,所述装置为分布式数据处理系统中的输入适配,所述数据处理系统还包括多个处理节点,所述输入适配与所述处理节点之间通过有向边连接,其特征在于,所述输入适配包括:
接收模块,用于接收输入数据流;
设定模块,用于根据所述输入数据流的处理需求设定数据封装策略;
封装模块,用于根据所述数据封装策略将所述输入数据流封装为数据单元;
发送模块,用于将所述数据单元发送至处理节点进行处理。
7.根据权利要求6所述的装置,其特征在于,所述数据封装策略包括时间长度,所述封装模块具体用于:
在每个所述时间长度内,若在该时间长度内有输入数据流,则将该时间长度内的所述输入数据流封装为一个数据单元。
8.根据权利要求6所述的装置,其特征在于,所述数据封装策略包括时间长度和数据封装大小,所述封装模块具体用于:
当所述输入数据流的数据大小达到所述数据封装大小,但未达到或刚好达到所述时间长度时,将达到所述数据封装大小的所述输入数据流封装为一个数据单元,并重新计时所述时间长度;
当所述输入数据流的数据大小未达到所述数据封装大小,但达到所述时间长度时,将所述时间长度内的所述输入数据流封装为一个数据单元。
9.根据权利要求6所述的装置,其特征在于,所述数据封装策略包括时间长度、数据封装大小和数据封装数量,所述封装模块具体用于:
当所述输入数据流的数据条目达到所述数据封装数量,但未达到或刚好达到所述时间长度,且未达到或刚好达到所述数据封装大小时,将达到所述数据封装数量的所述输入数据流封装为一个数据单元,并重新计时所述时间长度;
当所述输入数据流的数据条目未达到所述数据封装数量,但达到所述时间长度,且未达到或刚好达到所述数据封装大小时,将所述时间长度内的所述输入数据流封装为一个数据单元;
当所述输入数据流的数据条目未达到所述数据封装数量,但达到所述数据封装大小,且未达到或刚好达到所述时间长度时,将达到所述数据封装大小的所述输入数据流封装为一个数据单元,并重新计时所述时间长度。
10.根据权利要求6~9任一项所述的装置,其特征在于,所述输入适配还包括分配模块,用于:
根据所述数据处理系统的逻辑时钟为所述数据单元设置时序属性信息;
根据所述输入适配的任务节点标识信息和所述数据单元的封装顺序为所述数据单元设置标识信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510666183.5A CN105354242A (zh) | 2015-10-15 | 2015-10-15 | 分布式数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510666183.5A CN105354242A (zh) | 2015-10-15 | 2015-10-15 | 分布式数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105354242A true CN105354242A (zh) | 2016-02-24 |
Family
ID=55330215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510666183.5A Pending CN105354242A (zh) | 2015-10-15 | 2015-10-15 | 分布式数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105354242A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229815A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 数据分析方法及装置 |
WO2017181614A1 (zh) * | 2016-04-21 | 2017-10-26 | 乐视控股(北京)有限公司 | 流式数据定位方法、装置及电子设备 |
CN107463595A (zh) * | 2017-05-12 | 2017-12-12 | 中国科学院信息工程研究所 | 一种基于Spark的数据处理方法及系统 |
CN111079942A (zh) * | 2017-08-30 | 2020-04-28 | 第四范式(北京)技术有限公司 | 执行机器学习的分布式系统及其方法 |
CN112712411A (zh) * | 2020-12-31 | 2021-04-27 | 北京存金所贵金属有限公司 | 贵金属报价系统及报价方法 |
CN114911419A (zh) * | 2022-05-07 | 2022-08-16 | 阿里巴巴达摩院(杭州)科技有限公司 | 数据存储方法、系统、存储介质以及计算机终端 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1494688A (zh) * | 2001-02-24 | 2004-05-05 | �Ҵ���˾ | 新颖的大规模并行超级计算机 |
CN101394249A (zh) * | 2007-09-19 | 2009-03-25 | 华为技术有限公司 | 传输控制方法、传输方法及装置 |
CN102802022A (zh) * | 2012-08-28 | 2012-11-28 | 曙光信息产业(北京)有限公司 | 编解码系统和方法 |
CN103605710A (zh) * | 2013-11-12 | 2014-02-26 | 天脉聚源(北京)传媒科技有限公司 | 一种分布式音视频处理装置及处理方法 |
CN103761309A (zh) * | 2014-01-23 | 2014-04-30 | 中国移动(深圳)有限公司 | 一种运营数据处理方法及系统 |
CN103905843A (zh) * | 2014-04-23 | 2014-07-02 | 无锡天脉聚源传媒科技有限公司 | 一种规避连续i帧的分布式音视频处理装置和处理方法 |
CN104050543A (zh) * | 2014-06-30 | 2014-09-17 | 华为技术有限公司 | 流处理系统中的事件处理方法及流处理系统 |
CN104331270A (zh) * | 2014-10-24 | 2015-02-04 | 华为技术有限公司 | 一种流数据处理的方法、装置及系统 |
-
2015
- 2015-10-15 CN CN201510666183.5A patent/CN105354242A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1494688A (zh) * | 2001-02-24 | 2004-05-05 | �Ҵ���˾ | 新颖的大规模并行超级计算机 |
CN101394249A (zh) * | 2007-09-19 | 2009-03-25 | 华为技术有限公司 | 传输控制方法、传输方法及装置 |
CN102802022A (zh) * | 2012-08-28 | 2012-11-28 | 曙光信息产业(北京)有限公司 | 编解码系统和方法 |
CN103605710A (zh) * | 2013-11-12 | 2014-02-26 | 天脉聚源(北京)传媒科技有限公司 | 一种分布式音视频处理装置及处理方法 |
CN103761309A (zh) * | 2014-01-23 | 2014-04-30 | 中国移动(深圳)有限公司 | 一种运营数据处理方法及系统 |
CN103905843A (zh) * | 2014-04-23 | 2014-07-02 | 无锡天脉聚源传媒科技有限公司 | 一种规避连续i帧的分布式音视频处理装置和处理方法 |
CN104050543A (zh) * | 2014-06-30 | 2014-09-17 | 华为技术有限公司 | 流处理系统中的事件处理方法及流处理系统 |
CN104331270A (zh) * | 2014-10-24 | 2015-02-04 | 华为技术有限公司 | 一种流数据处理的方法、装置及系统 |
Non-Patent Citations (6)
Title |
---|
M ZAHARIA等: "Discretized streams: an efficient and fault-tolerant model for stream processing on large clusters", 《USENIX CONFERENCE ON HOT TOPICS IN CLOUD CCOMPUTING》 * |
MATEI ZAHARIA 等: "Discretized streams: fault-tolerant streaming computation at scale", 《SOSP "13 PROCEEDINGS OF THE TWENTY-FOURTH ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES》 * |
王成章 等: "流式处理系统的动态数据分配技术", 《计算机工程与科学》 * |
胡俊 等: "基于Spark的大数据混合计算模型", 《计算机系统应用》 * |
郑伟 等: "光突发交换网络边缘节点突发装配方案", 《现代电信科技》 * |
高彦杰 机械工业出版社: "《Spark大数据处理 技术、应用与性能优化》", 30 November 2014 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229815A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 数据分析方法及装置 |
WO2017181614A1 (zh) * | 2016-04-21 | 2017-10-26 | 乐视控股(北京)有限公司 | 流式数据定位方法、装置及电子设备 |
CN107463595A (zh) * | 2017-05-12 | 2017-12-12 | 中国科学院信息工程研究所 | 一种基于Spark的数据处理方法及系统 |
CN111079942A (zh) * | 2017-08-30 | 2020-04-28 | 第四范式(北京)技术有限公司 | 执行机器学习的分布式系统及其方法 |
CN111079942B (zh) * | 2017-08-30 | 2023-03-24 | 第四范式(北京)技术有限公司 | 执行机器学习的分布式系统及其方法 |
CN112712411A (zh) * | 2020-12-31 | 2021-04-27 | 北京存金所贵金属有限公司 | 贵金属报价系统及报价方法 |
CN114911419A (zh) * | 2022-05-07 | 2022-08-16 | 阿里巴巴达摩院(杭州)科技有限公司 | 数据存储方法、系统、存储介质以及计算机终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105354242A (zh) | 分布式数据处理方法及装置 | |
US10331492B2 (en) | Techniques to dynamically allocate resources of configurable computing resources | |
US9256640B2 (en) | Streaming delay patterns in a streaming environment | |
Khazaei et al. | Analysis of a pool management scheme for cloud computing centers | |
Cho et al. | Natjam: Design and evaluation of eviction policies for supporting priorities and deadlines in mapreduce clusters | |
Ali et al. | Optimizing inference serving on serverless platforms | |
CN108845878A (zh) | 基于无服务器计算的大数据处理方法及装置 | |
CN105791431A (zh) | 一种在线分布式监控视频处理任务调度方法及装置 | |
US20160182320A1 (en) | Techniques to generate a graph model for cloud infrastructure elements | |
US9672068B2 (en) | Virtual machine scheduling using optimum power-consumption profile | |
WO2015149514A1 (zh) | 一种虚拟机的部署方法及装置 | |
US11016897B2 (en) | Cache management in a stream computing environment that uses a set of many-core hardware processors | |
CN107729137A (zh) | 服务器、区块链验签解密的方法及存储介质 | |
CN105760459A (zh) | 一种分布式数据处理系统及方法 | |
CN105426163A (zh) | 一种基于mic协处理器的单数据流分位数处理方法 | |
CN105404554B (zh) | 用于Storm流计算框架的方法和装置 | |
CN104853061A (zh) | 一种基于Hadoop的视频处理方法及系统 | |
Hassan et al. | Efficient resource scheduling for big data processing in cloud platform | |
US9641586B2 (en) | Exiting windowing early for stream computing | |
Vakilinia et al. | Preemptive cloud resource allocation modeling of processing jobs | |
US8838414B2 (en) | Determining when to create a prediction based on deltas of metric values | |
US20240028405A1 (en) | Optimization of a pipeline of services | |
Khalaf et al. | Analysis of cost minimization methods in geo-distributed data centers | |
CN110377578B (zh) | 一种基于改进的Flume的数据处理方法和装置 | |
Lim et al. | A parallel discrete-event simulation of wafer fabrication processes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160224 |
|
RJ01 | Rejection of invention patent application after publication |