一种开源平台及其实现数据处理的方法技术

技术编号:6961359 阅读:219 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种开源平台及其实现数据处理的方法,包括对分时准备的数据进行映射(Map)处理、组合处理和通用化简(Reduce)处理,并存储处理后的中间结果;在最后一个分时Map任务处理完成后,对处理后的中间结果进行用户Reduce处理。本发明专利技术不会给用户Map/Reduce程序带来任何变化,实现了无缝切换,而且,对Map任务进行分时处理,计算机集群的计算能力得到了高效、充分的利用,提高了资源利用率。

【技术实现步骤摘要】

本专利技术涉及计算机数据处理技术,尤指。
技术介绍
Map/Reduce分布式计算模型是一个编程过程,其主要目的是解决海量数据分析处理。Map/Reduce分布式计算模型,将数据分析流程分为两个阶段,其中,映射(Map)阶段用于数据分拣和分堆 ;化简(Reduce)阶段用于数据汇总。Map/Reduce分布式计算模型结合分布式存储技术(GFS),实现了计算和存储资源的整合,达到了利用普通的PC机集群实现高性能计算的目的。其中,GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。随着Map/Reduce分布式计算模型的应用,基于Map/Reduce分布式计算模型的 Hadoop开源平台应运而生,Hadoop是一个实现了 Map/Reduce计算模型的开源分布式并行编程框架,借助于Hadoop,程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。Hadoop开源平台简单方便的用户接口大大减低了分布式计算开发门槛,用户可以在不关心分布式技术细节的情况下就可以快速实现对海量数据的分析应用。但是,目前采用以上技术搭建的应用存在一个突出的问题就是需要数据准备完整后,平台才能对其进行处理。图1为现有Hadoop开源平台的组成示意图,如图1所示,主要包括数据准备模块、用户Map处理模块、用户组合处理模块和用户Reduce处理模块,其中,用户Map处理模块、用户组合处理模块和用户Reduce处理模块的处理过程是在数据准备完整后统一执行的。比如,很多实际分析应用都是基于全天(或全月)数据的积累,对于基于全天的数据积累,只有到凌晨时平台才能对任务进行分析,这就导致了集群资源白天的闲置,而凌晨的高速运转需要保障结果及时准确,数据分析任务被压缩到凌晨时间段,这在很大程度上影响到了平台的支撑能力。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供, 能够高效、充分利用计算机集群的计算能力,提高资源利用率。为达到上述目的,本专利技术的技术方案是这样实现的—种开源平台,包括分时数据准备模块、用户映射处理模块、用户组合处理模块、 通用化简处理模块、存储模块和统一化简处理模块,其中,分时数据准备模块,用于在预先设置的准备时长后,对上传的数据进行一次数据准备,每次分时数据准备完整后的分时映射任务输出给用户映射处理模块;用户映射处理模块,用于对来自分时数据准备模块输出的分时映射任务进行映射处理,并输出给用户组合处理模块;用户组合处理模块,用于对映射处理后的数据进行组合处理,并将处理后的数据输出给通用化简处理模块;通用化简处理模块,用于对来自用户组合处理模块输出的处理后的数据进行通用化简处理,并将处理后的中间结果存储到存储模块中;统一化 简处理模块,用于在最后一个分时映射任务处理完成后,归并各时段的中间结果并进行有序读取,直接调用用户化简程序进行结果归总统计;或者,用于在每次分时映射完成后,对累计的中间数据进行读取,调用一次用户化简程序进行处理。一种开源平台实现数据处理的方法,包括对分时准备的数据进行映射处理、组合处理和通用化简处理,并存储处理后的中间结果;在最后一个分时映射任务处理完成后,对处理后的所有中间结果进行用户化简处理,或者在每次分时映射完成后,对累计的中间数据进行读取,调用一次用户化简程序进行处理。所述对分时准备的数据进行映射处理、组合处理和通用化简处理,并存储处理后的中间结果包括每隔一段预设时间,所述开源平台对用户上传的数据执行映射处理及组合处理操作,并利用通用化简程序处理后产生中间结果,并存储产生的中间结果。所述存储的方法为将所述用户组合模块产生的KEY、VALUE数据,分两类文件存储到HDFS中,其中,KEY文件,用于依次存储KEY的数据,并存储该KEY对应的VALUE个数;VALUE文件,用于不断存储VALUE的数据。所述对中间结果进行用户化简处理包括采用与预设数据读取策略,将所述存储的中间结果按照KEY值顺序依次读出,对每个KEY值的关联数据进行化简归并操作;所述数据读取策略为从所述KEY文件中读取KEY值,并读取一个长整形得到 VALUE个数,然后再从所述VALUE文件中读取N个VALUE值。从上述本专利技术提供的技术方案可以看出,包括对分时准备的数据进行Map处理、 组合处理和通用Reduce处理,并存储处理后的中间结果;在最后一个分时Map任务处理完成后,对处理后的中间结果进行用户Reduce处理。本专利技术不会给用户Map/Reduce程序带来任何变化,实现了无缝切换,而且,对Map任务进行分时处理,计算机集群的计算能力得到了高效、充分的利用,提高了资源利用率。附图说明图1为现有开源平台的组成示意图;图2为本专利技术开源平台的组成示意图;图3为本专利技术开源平台实现数据处理的方法的流程图。具体实施例方式图2为本专利技术开源平台的组成示意图,如图2所示,主要包括分时数据准备模块、 用户Map处理模块、用户组合combiner处理模块、通用Reduce处理模块、存储模块和统一Reduce处理模块,其中,分时数据准备模块,用于在预先设置的准备时长后,对上传的数据进行一次准备, 每次分时准备完整后的数据(也称为分时Map任务)输出给用户Map处理模块。比如每隔 1小时对数据进行 一次准备处理。用户Map处理模块,用于对来自分时数据准备模块输出的分时Map任务进行Map 处理,并输出给用户combiner处理模块;这样,减少了中间输入输出(IO)输出量。用户combiner处理模块,用于对Map处理后的数据进行组合处理,并将处理后的数据输出给通用Reduce处理模块。用户Map处理模块和用户combiner处理模块的具体实现与现有的完全一致,这里不再详述。通用Reduce处理模块,用于对来自用户组合处理模块输出的处理后的数据进行通用Reduce处理,并将处理后的中间结果存储到存储模块中。通过一个通用Reducer程序将用户分时执行Map任务,并执行后得到的对中间结果进行高效结构化存储。统一 Reduce处理模块,用于在最后一个分时Map任务处理完成后,归并各时段的中间结果并进行有序读取,最终直接调用用户Reduce程序进行结果归总统计;或者,用于在每次分时Map完成后,对累计的中间数据进行读取,调用一次用户Reduce程序进行处理, 这样实现了准实时计算。图3为本专利技术开源平台实现数据处理的方法的流程图,结合图2对本专利技术开源平台实现数据处理的方法进行详细描述如下步骤300 对分时准备的数据进行Map处理、组合处理和通用Reduce处理,并存储处理后的中间结果。用户的数据是实时传输到HDFS中的,每隔一段预设时间,Hadoop开源平台对用户上传的数据执行Map处理及组合处理操作,并利用通用Reduce程序处理后产生中间结果, 产生的中间结果存储在HDFS中,并通过一定结构保证数据有序性,以便后续高效的读取效率。其中,HDFS是hadoop开源平台项目中的一个分布式存储系统子项目。采用一定结构将产生的中间结果存储在HDFS中为将用户组合模块产生的KEY, VALUE数据,分两类文件(即KEY文件和VALUE文件)存储到HDFS中。由于在Reduce阶段同一个KEY的数据已经完成了归本文档来自技高网
...

【技术保护点】
1.一种开源平台,其特征在于,包括分时数据准备模块、用户映射处理模块、用户组合处理模块、通用化简处理模块、存储模块和统一化简处理模块,其中,分时数据准备模块,用于在预先设置的准备时长后,对上传的数据进行一次数据准备,每次分时数据准备完整后的分时映射任务输出给用户映射处理模块;用户映射处理模块,用于对来自分时数据准备模块输出的分时映射任务进行映射处理,并输出给用户组合处理模块;用户组合处理模块,用于对映射处理后的数据进行组合处理,并将处理后的数据输出给通用化简处理模块;通用化简处理模块,用于对来自用户组合处理模块输出的处理后的数据进行通用化简处理,并将处理后的中间结果存储到存储模块中;统一化简处理模块,用于在最后一个分时映射任务处理完成后,归并各时段的中间结果并进行有序读取,直接调用用户化简程序进行结果归总统计;或者,用于在每次分时映射完成后,对累计的中间数据进行读取,调用一次用户化简程序进行处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:崔晓春刘奕慧史晓峰彭卓珍杨博自然卜永忠宫振飞赵锐张文郁蔡斌
申请(专利权)人:深圳市腾讯计算机系统有限公司
类型:发明
国别省市:94

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1