一种MapReduce程序快速生成方法
【技术领域】
[0001]本发明涉及程序设计领域,更具体地说,本发明涉及一种MapReduce程序快速生成方法,特别是涉及一种基于Pig Latin语言的中间处理方法。
【背景技术】
[0002]在半结构化、非结构化数据处理领域,Hadoop系统目前依旧是企业的不二之选。然而,高效并行的背后,却难掩Map/Reduce及其子过程开发耗时繁复、可扩展性低、可利用性差等缺陷。究其原因,Shuffle、Map、Reduce等并行子过程的开发、调试复杂,是其中的重要因素。
[0003]目前,利用开发工具及其相关插件(如Eclipse)与HDFS形成集成开发环境拥有较广的市场,然而此举效果有限。
【发明内容】
[0004]本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种能够有效地对程序进行表达、展现与评估的MapReduce程序快速生成方法。
[0005]为了实现上述技术目的,根据本发明,提供了一种MapReduce程序快速生成方法,包括:
[0006]问题建模处理,用于对目标问题进行数学抽象,以得到键一值对形式的建模结果,并在数据仓库中存储并维护得到的键一值对;
[0007]Pig处理,用于将建模结果按照面向Pig Latin的数据结构进行表达;
[0008]结果生成处理,用于对Pig处理的结果面向MapReduce的类库进行解析与翻译,调试生成最终的并行程序。
[0009]优选地,在第一步骤中,在Hadoop底层存储架构HDFS平台上以小于64MB的文件块分布存储键一值对。
[0010]优选地,在第一步骤中,将键一值对的数据组织到相关的数据库或数据仓库中。[0011 ]优选地,问题建模建立了计算机处理的问题域表达。
[0012]优选地,Pig处理为程序的生成提供缓冲。
[0013]优选地,Pig处理针对数组、映射与集合来将建模结果按照面向PigLatin的数据结构进行表达。
[0014]优选地,Pig处理应用的操作包括排序、过滤、分组和连接。
【附图说明】
[0015]结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
[0016]图1示意性地示出了根据本发明优选实施例的MapReduce程序快速生成方法的流程图。
[0017]需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
【具体实施方式】
[0018]为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
[0019]图1示意性地示出了根据本发明优选实施例的MapReduce程序快速生成方法的流程图。
[0020]如图1所示,根据本发明优选实施例的MapReduce程序快速生成方法包括依次执行的下述步骤:
[0021 ]第一步骤:问题建模处理,用于对目标问题进行数学抽象,以得到键一值对形式的建模结果,并在数据仓库中存储并维护得到的键一值对。
[0022]例如,在Hadoop底层存储架构HDFS(HadoopDistributed File System)平台上以小于64MB的文件块分布存储键一值对。此外,例如,为了提高存取与处理效率,可以将键一值对的数据组织到相关的数据库(HBase)或数据仓库(Hive)中。
[0023]问题建模是对问题系统进行描述,旨在建立计算机处理的问题域表达,方便后续分布式进行。
[0024]第二步骤:Pig处理,用于将建模结果按照面向PigLatin的数据结构进行表达;具体地,例如,主要是数组(tuple)、映射(map)与集合(bag)的考虑,关键是相关操作的应用,如排序、过滤、分组、连接等。
[0025]Pig处理是中间阶段,旨在为程序的生成提供缓冲,优先复杂数据类型及关键操作的实现,方便为相似问题提供较一般的接口。该Pig处理利用Pig Latin语言,在问题建模与MapReduce程序之间加入了一个中间处理阶段,为二者之间的差异架起了桥梁。
[0026]第三步骤:结果生成处理,用于对Pig处理的结果面向MapReduce的类库进行解析与翻译,调试生成最终的并行程序。
[0027 ] 结果生成处理以MapReduce的公共接口为基础,对Pig生成的操作进行转译。例如,例如,结果生成处理将Pig语言所生成的操作代码,转译成类库为基础的映射(Map)、排序(Sort)、归约(Reduce)等。
[0028]本发明公开了一种MapReduce程序快速生成框架。框架基于Hadoop分布式存储框架与并行处理模型MapReduce模式,理论上能够协助所有计算问题快速生成MapReduce程序,从而节约成本,提高并行代码的可用性。
[0029]更具体地说,与现有技术相比,本发明一种MapReduce程序快速生成框架具有以下优点:(1)面向分布式存储系统Hadoop与分布式计算模式MapReduce,适用范围较广;(2)缩短了并行程序的开发周期,提高了其可用性。
[0030]〈具体示例〉
[0031]举例来说,根据本发明优选实施例的MapReduce程序快速生成方法的具体示例包括:
[0032 ]首先,对于给定的大数据分析问题,清洗数据后,对其中的Schema进行面向键一值对的抽象存入Hive中。
[0033]然后,根据建模结果,运用Pig语言进行数据表示与操作编排。
[0034]随后,根据MapReduce提供的API(Applicat1nProgramming Interface,应用程序编程接口),对Pig处理后的中间结果进行转译,生成最终程序代码。
[0035]本发明立足ApachePig语言,它内置过程式语言,并与HDFS密切结合,善于对大数据分析程序进行表达、展现与评估。其中基础设施层中包含一人编译器,能够为已有的Hadoop集群批量生产MapReduce程序。
[0036]此外,需要说明的是,除非特别说明或者指出,否则说明书中的术语“第一”、“第二”、“第三”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
[0037]可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
【主权项】
1.一种MapReduce程序快速生成方法,其特征在于包括: 问题建模处理,用于对目标问题进行数学抽象,以得到键一值对形式的建模结果,并在数据仓库中存储并维护得到的键一值对; Pig处理,用于将建模结果按照面向Pig Latin的数据结构进行表达; 结果生成处理,用于对Pig处理的结果面向MapReduce的类库进行解析与翻译,调试生成最终的并行程序。2.根据权利要求1所述的MapReduce程序快速生成方法,其特征在于,在第一步骤中,在Hadoop底层存储架构HDFS平台上以小于64MB的文件块分布存储键一值对。3.根据权利要求1或2所述的MapReduce程序快速生成方法,其特征在于,在第一步骤中,将键一值对的数据组织到相关的数据库或数据仓库中。4.根据权利要求1或2所述的MapReduce程序快速生成方法,其特征在于,问题建模建立了计算机处理的问题域表达。5.根据权利要求1或2所述的MapReduce程序快速生成方法,其特征在于,Pig处理为程序的生成提供缓冲。6.根据权利要求1或2所述的MapReduce程序快速生成方法,其特征在于,Pig处理针对数组、映射与集合来将建模结果按照面向Pig Latin的数据结构进行表达。7.根据权利要求1或2所述的MapReduce程序快速生成方法,其特征在于,Pig处理应用的操作包括排序、过滤、分组和连接。
【专利摘要】本发明提供了一种MapReduce程序快速生成方法,包括:问题建模处理,用于对目标问题进行数学抽象,以得到键-值对形式的建模结果,并在数据仓库中存储并维护得到的键-值对;Pig处理,用于将建模结果按照面向Pig?Latin的数据结构进行表达;结果生成处理,用于对Pig处理的结果面向MapReduce的类库进行解析与翻译,调试生成最终的并行程序。
【IPC分类】G06F9/44
【公开号】CN105487872
【申请号】CN201510874778
【发明人】李建敦
【申请人】上海电机学院
【公开日】2016年4月13日
【申请日】2015年12月2日