基于MapReduce的大数据处理方法及系统技术方案

技术编号:36910909 阅读:13 留言:0更新日期:2023-03-18 09:29
基于MapReduce的大数据处理方法及系统,解决了现有大数据处理框架对于迭代逻辑的实现效果差的问题,属于计算机领域。本发明专利技术包括:输入java代码,将java代码分成java代码段并转换为MapReduce代码,判断每个代码段是否为迭代逻辑,若是,利用全新API函数进行编译,全新API函数为:主节点申请缓存空间,用来存储用户定义的循环不变量及每次mapper和reducer的输入输出缓存,并建立索引,主节点新建一个job控制模块,用于不断的启用map

【技术实现步骤摘要】
基于MapReduce的大数据处理方法及系统


[0001]本专利技术涉及一种基于MapReduce的大数据处理方法,属于计算机领域。

技术介绍

[0002]MapReduce是一种用于大规模数据集并行计算的编程模型,借助于函数式程序设计语言思想,用Map和Reduce两个函数编程实现并行计算任务,具有多种高效的实现方式。所有这些实现都向开发人员公开了应用程序编程接口(API),虽然具体语法在不同的API之间略有不同,但它们都需要理解已有代码功能并能重写Map和Reduce函数计算,以实现MapReduce框架的优化。对于不熟悉MapReduce程序的开发人员来说,亟需学习不同API并且在保证无误的条件下重写代码和算法重构,这无疑具有不小的难度。
[0003](1)现有的大数据处理框架(例如Hadoop,Spark),都是要求程序员首先了解其API,然后利用这些API编写MapReduce代码,这对于刚刚上手的程序员需要学习的时间很长,往往在工作时没有这么长的时间周期。
[0004](2)现有的大数据处理框架对于迭代逻辑的实现效果很差,常见的大数据处理框架例如Hadoop不支持迭代,Spark为了相对减少一些处理迭代时候的I/O读取,根据数据库建立弹性数据集RDD(可以理解为一个小数据库,只能读,一般建立在内存中),RDD的建立是需要经验的,要人为的去判断哪些数据可能会频繁读取,依靠人为经验建立的RDD有些时候会显著提升效率,但是有些时候,如果RDD中的数据没有频繁被调用,反而对最后的效果没有太大帮助,并且,RDD需要定期更新,因为建立RDD所依赖的数据库是中的数据是会变化的,所以RDD只是较为特殊的情况下才能很高的提升迭代效率,以上导致目前基于MapReduce的迭代逻辑几乎不能进行处理,因为迭代逻辑本身的特性是有很多数据会进行重复的利用,势必要造成I/O读写次数极多,十分耗费时间,效率很低,即使有像Spark针对于I/O进行了优化,但是不保证效果一定很好,甚至有些时候利用Spark处理迭代,效果还不如利用Hadoop手动编排mapper和reducer实现迭代的效果好。

技术实现思路

[0005]针对现有大数据处理框架对于迭代逻辑的实现效果差的问题,本专利技术提供一种基于MapReduce的大数据处理方法及系统。
[0006]本专利技术提供一种基于MapReduce的大数据处理方法,包括
[0007]S1、输入java代码,将java代码分成java代码段;
[0008]S2、按照java代码段的执行顺序,取出java代码段,判断取出的每个java代码段是否为迭代逻辑,所述java代码段若是迭代逻辑,将java代码段转换为MapReduce代码,利用全新API函数进行编译,得到执行结果,所述全新API函数为:
[0009]主节点新建一个job控制模块,该job控制模块不断的启用map

reduce过程来实现MapReduce代码的迭代逻辑,用户定义循环不变量,主节点申请缓存空间,用来存储用户定义的循环不变量及每次mapper和reducer的输入输出缓存,并建立索引,job控制模块进行
多个map

reduce过程中,根据索引从缓存空间中取出需要的数据;
[0010]当迭代满足终止条件,结束迭代,获得MapReduce代码的执行结果,作为下一个代码段的输入;
[0011]所述java代码段若不是迭代逻辑,将java代码段转换为MapReduce代码,利用已有大数据框架的API进行编译该MapReduce代码,获得的执行结果作为下一个代码段的输入。
[0012]作为优选,将java代码段转换为MapReduce代码的方法,包括:
[0013]将java代码段转换为中间代码,并将中间代码进行摘要,搜索与摘要相类似表述的API函数,利用API函数将摘要转换成MapReduce码。
[0014]作为优选,将java代码段转换为MapReduce代码的方法,还包括:
[0015]将Java代码段和转换的MapReduce码进行编译获得结果,如果结果相同,证明MapReduce代码转换成功,否则,更换API函数,重新将摘要转换成MapReduce码。
[0016]作为优选,已有大数据框架包括Hadoop和Spark。
[0017]作为优选,迭代终止条件为两次迭代结果相等,或者当前迭代次数达到最大迭代次数。
[0018]本专利技术还提供一种基于MapReduce的大数据处理系统,包括:
[0019]拆分模块,用于输入java代码,将java代码分成java代码段,按照java代码段的执行顺序,取出java代码段;
[0020]处理模块,用于判断取出的每个java代码段是否为迭代逻辑,所述java代码段若是迭代逻辑,将java代码段转换为MapReduce代码,利用全新应用程序编程接口模块进行编译,得到执行结果,当迭代满足终止条件,结束迭代,获得MapReduce代码的执行结果,作为下一个代码段的输入;所述java代码段若不是迭代逻辑,将java代码段转换为MapReduce代码,利用已有MapReduce模块进行编译该MapReduce代码,获得的执行结果作为下一个代码段的输入;
[0021]全新应用程序编程接口模块包括job控制模块和缓存模块;
[0022]job控制模块,用于不断的启用map

reduce过程来实现MapReduce代码的迭代逻辑,获得执行结果;
[0023]缓存模块,与job控制模块连接,用于存储用户定义的循环不变量及每次mapper和reducer的输入输出缓存,并建立索引;job控制模块在进行多个map

reduce过程中,根据索引从缓存空间中取出需要的数据。
[0024]作为优选,所述处理模块采用编译器将java代码段转换为MapReduce代码,所述编译器用于将java代码段转换为中间代码,并将中间代码进行摘要,搜索与摘要相类似表述的应用程序编程接口模块,利用该应用程序编程接口模块将摘要转换成MapReduce码。
[0025]作为优选,所述编译器,还用于将Java代码段和转换的MapReduce码进行编译获得结果,如果结果相同,证明MapReduce代码转换成功,否则,更换应用程序编程接口模块,重新将摘要转换成MapReduce码。
[0026]作为优选,所述MapReduce模块为基于Hadoop的MapReduce模块或基于Spark的MapReduce模块。
[0027]本专利技术的有益效果,本专利技术适用于处理需要迭代计算的MapReduce程序编译,通过添加缓存功能,缓存中间结果及循环不变量,减少了I/O次数,节省了时间,避免了在多次迭
代中处理相同数据造成的资源浪费的问题。同时,本框架重新规定了迭代逻辑的执行方法,执行效率更高。同时,该框架不本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于MapReduce的大数据处理方法,其特征在于,包括:S1、输入java代码,将java代码分成java代码段;S2、按照java代码段的执行顺序,取出java代码段,判断取出的每个java代码段是否为迭代逻辑,所述java代码段若是迭代逻辑,将java代码段转换为MapReduce代码,利用全新API函数进行编译,得到执行结果,所述全新API函数为:主节点新建一个job控制模块,该job控制模块不断的启用map

reduce过程来实现MapReduce代码的迭代逻辑,用户定义循环不变量,主节点申请缓存空间,用来存储用户定义的循环不变量及每次mapper和reducer的输入输出缓存,并建立索引,job控制模块进行多个map

reduce过程中,根据索引从缓存空间中取出需要的数据;当迭代满足终止条件,结束迭代,获得MapReduce代码的执行结果,作为下一个代码段的输入;所述java代码段若不是迭代逻辑,将java代码段转换为MapReduce代码,利用已有大数据框架的API进行编译该MapReduce代码,获得的执行结果作为下一个代码段的输入。2.根据权利要求1所述的基于MapReduce的大数据处理方法及系统,其特征在于,将java代码段转换为MapReduce代码的方法,包括:将java代码段转换为中间代码,并将中间代码进行摘要,搜索与摘要相类似表述的API函数,利用API函数将摘要转换成MapReduce码。3.根据权利要求2所述的基于MapReduce的大数据处理方法及系统,其特征在于,将java代码段转换为MapReduce代码的方法,还包括:将Java代码段和转换的MapReduce码进行编译获得结果,如果结果相同,证明MapReduce代码转换成功,否则,更换API函数,重新将摘要转换成MapReduce码。4.根据权利要求1所述的基于MapReduce的大数据处理方法及系统,其特征在于,已有大数据框架包括Hadoop和Spark。5.根据权利要求1所述的基于MapReduce的大数据处理方法及系统,其特征在于,迭代终止条件为两次迭代结果相等,或者当前迭代次数达到最大迭代次数。6.根据权利要求1所述的基于MapReduce的大数据处理方法及系统,其特征在于,每个java代码段是从首代码开始到...

【专利技术属性】
技术研发人员:王宏志穆添愉邵心玥
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:

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

1