【技术实现步骤摘要】
MapReduce作业执行方法、节点设备及存储介质
本申请涉及计算机
,尤其涉及一种MapReduce作业执行方法、节点设备及存储介质。
技术介绍
MapReduce(映射化简)是一种用于大规模数据并行化运算的编程模型和执行框架。MapRedeuce框架允许用户使用函数式编程的思想来表述业务逻辑,只要实现Map(映射)、Reduce(化简)即可提交分布式作业,而不用关心分布式并行化的细节。MapReduce编程模型简单、用户使用java语言实现MapReduce框架提供的接口、编写Map和Reduce程序,就可以把作业提交到分布式计算系统中做分布式大数据计算,因此在很多分布式计算系统中得到广泛应用。但是,MapReduce作业的执行性能相对较差,这是业界迫切需要解决的问题。
技术实现思路
本申请的多个方面提供一种MapReduce作业执行方法、节点设备及存储介质,用以借助分布式Sql执行框架的优势执行MapReduce作业,提高MapReduce作业的执行性能。本申请实施例提供一种MapReduce作业执行方法,适用于分布式计算系统中的节点设备,所述方法包括:获取MapReduce作业的执行描述信息,所述执行描述信息是用户按照MapReduce执行框架的接口要求使用java语言编写的;利用Sql语言的语法将所述执行描述信息重新表达为Sql代码片段;按照分布式Sql执行框架执行所述Sql代码片段,在所述Sql代码片段的执行过程中反射调用所述MapReduce作业需要的Map程序 ...
【技术保护点】
1.一种映射化简MapReduce作业执行方法,适用于分布式计算系统中的节点设备,其特征在于,所述方法包括:/n获取MapReduce作业的执行描述信息,所述执行描述信息是用户按照MapReduce执行框架的接口要求使用java语言编写的;/n利用Sql语言的语法将所述执行描述信息重新表达为Sql代码片段;/n按照分布式Sql执行框架执行所述Sql代码片段,在所述Sql代码片段的执行过程中反射调用所述MapReduce作业需要的Map程序和Reduce程序,以完成所述MapReduce作业。/n
【技术特征摘要】
1.一种映射化简MapReduce作业执行方法,适用于分布式计算系统中的节点设备,其特征在于,所述方法包括:
获取MapReduce作业的执行描述信息,所述执行描述信息是用户按照MapReduce执行框架的接口要求使用java语言编写的;
利用Sql语言的语法将所述执行描述信息重新表达为Sql代码片段;
按照分布式Sql执行框架执行所述Sql代码片段,在所述Sql代码片段的执行过程中反射调用所述MapReduce作业需要的Map程序和Reduce程序,以完成所述MapReduce作业。
2.根据权利要求1所述的方法,其特征在于,所述执行描述信息包括:用户为MapReduce作业配置的Map程序、Reduce程序以及Map程序、Reduce程序的输入输出;
利用Sql语言的语法将所述执行描述信息重新表达为Sql代码片段,包括:
利用Sql语言中的函数定义类语句,将所述用户配置的Map程序、Reduce程序分别映射到相应的Sql函数;
利用Sql语言中的查询类语句,将所述用户配置的Map程序、Reduce程序的输入输出改写为相应Sql函数的输入输出;以及
利用Sql语言中的输出类语句,对用户配置的MapReduce作业的输出进行重新表达。
3.根据权利要求2所述的方法,其特征在于,利用Sql语言中的函数定义类语句,将所述用户配置的Map程序、Reduce程序分别映射到相应的Sql函数,包括:
利用Sql语言中的创建临时函数createtemporaryfunction子句,为所述用户配置的Map程序、Reduce程序分别创建Sql临时函数;Sql临时函数指向相应Map程序或Reduce程序的jar包的存储路径。
4.根据权利要求3所述的方法,其特征在于,利用Sql语言中的查询类语句,将所述用户配置的Map程序、Reduce程序的输入输出改写为相应Sql函数的输入输出,包括:
若所述用户配置的Map程序、Reduce程序的输入源是表Table,则利用Sql语言中的选择SELECT和来自FROM子句将所述用户配置的Map程序、Reduce程序的输入输出定义为相应Sql临时函数的输入输出;
若所述用户配置的Map程序、Reduce程序的输入源是结构化文件,则利用Sql语言中的ValuesTable子句将所述用户配置的Map程序、Reduce程序的输入输出定义为相应Sql临时函数的输入输出。
5.根据权利要求4所述的方法,其特征在于,利用Sql语言中的选择SELECT和来自FROM子句将所述用户配置的Map程序、Reduce程序的输入输出定义为相应Sql临时函数的输入输出,包括:
若所述用户配置了表Table中可作为输入的字段,则利用Sql语言中的选择SELECT和来自FROM子句从所述表Table中选择用户配置的字段作为相应Sql临时函数的输入字段,并将用户配置的输出字段填充为相应Sql临时函数的输出列表;
若所述用户未配置表Table中可作为输入的字段,则利用Sql语言中的选择SELECT和来自FROM子句从表Table中选择全部字段作为相应Sql临时函数的输入字段,并将用户配置的输出字段填充为相应Sql临时函数的输出列表。
6.根据权利要求4所述的方法,其特征在于,
若所述用户配置的Map程序的输入源为多个,且针对每个输入源的处理程序不一致,使用Sql语言的联合全部UNIONALL子句合并多个输入源。
7.根据权利要求4所述的方法,其特征在于,还包括:
利用Sql语言中的发布DISTRIBUTEBY功能,对用户配置的MapReduce作业中的分区排序SHUFFLESORT信息进行重新表达;或者
利用Sql语言中的发布DISTRIBUTEBY功能和排序SORTBY功能,对用户配置的MapReduce作业中的分区排序SHUFFLESORT信息进行重新表达。
8.根据权利要求2所述的方法,其特征在于,利用Sql语言中的输出类语句,对用户配置的MapReduce作业的输出进行重新表达,包括:
若用户配置的MapReduce作业的执行结果为直接输出,则利用Sql语言中的选择SELECT子句将执行结果直接输出至屏幕;
若用户配置的MapReduce作业的执行结果为存储至指定表,则利用Sql语言中的插入INSERTOVERWRITE/INTO子句或多元插入MULTIINSERTOVERWRITE/INTO子句将执行结果插入指定表中。
9.根据权利要求2-8任一项所述的方法,其特征在于,按照分布式Sql执行框架执行所述Sql代码片段,在所述Sql代码片段的执行过程中反射调用所述MapReduce作业需要的Map程序和...
【专利技术属性】
技术研发人员:李瑞盛,侯震宇,谢德军,欧阳哲,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛;KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。