MapReduce分布式系统程序的测试方法及设备技术方案

技术编号:8862257 阅读:219 留言:0更新日期:2013-06-28 01:29
本发明专利技术提供一种MapReduce分布式系统程序的测试方法及设备。本发明专利技术实施例通过利用接收到的MapReduce启动命令中所包含的启动参数,运行第一脚本,以获得所述待测试程序相关的第一环境变量参数,以及进一步获得所述MapReduce分布式系统相关的第二环境变量参数,使得能够利用所述第一环境变量参数和所述第二环境变量参数,运行第二脚本,以运行所述待测试程序,由于通过运行第一脚本,获得待测试程序相关的第一环境变量参数,再结合利用所获得的MapReduce分布式系统相关的第二环境变量参数,运行第二脚本,使得无需搭建基于HDFS的MapReduce分布式集群环境即可运行所述待测试程序得以实现,从而降低了测试成本。

【技术实现步骤摘要】
MapReduce分布式系统程序的测试方法及设备
本专利技术涉及通信技术,尤其涉及一种MapReduce分布式系统程序的测试方法及设备。
技术介绍
近年来,随着宽带网络技术与并行计算理论的快速发展,一种更简化的分布式系统即映射和汇总(MapReduce)分布式系统应运而生,以为多种应用提供服务,例如,为搜索引擎提供服务。在MapReduce分布式系统,也可以称为MapReduce分布式集群,例如,Hadoop系统,中,一个数据处理过程称为一个作业(Job),Job提交之后,将待处理数据分为N份,每份待处理数据由一个映射(Map)任务进行处理,Map任务运行在该MapReduce分布式系统中的一个节点设备上,一个节点设备上可以运行一个或多个Map任务;所有Map任务的输出结果由汇总(Reduce)任务进行汇总,输出对应的结果。其中,Hadoop是阿帕奇软件基金下的一个开源项目。然而,在MapReduce分布式系统中,对所运行的程序即MapReduce分布式系统程序进行测试,往往需要搭建基于Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)的MapReduce分布式集群环境,从而导致了测试成本的增加。
技术实现思路
本专利技术的多个方面提供一种MapReduce分布式系统程序的测试方法及设备,用以降低测试的成本。本专利技术的一方面,提供一种MapReduce分布式系统程序的测试方法,包括:接收MapReduce启动命令,所述MapReduce启动命令用于启动MapReduce分布式系统的待测试程序,所述MapReduce启动命令中包含启动参数;利用所述启动参数,运行第一脚本,以获得所述待测试程序相关的第一环境变量参数;获得所述MapReduce分布式系统相关的第二环境变量参数;利用所述第一环境变量参数和所述第二环境变量参数,运行第二脚本,以运行所述待测试程序。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获得所述MapReduce分布式系统相关的第二环境变量参数,包括:利用集群配置文件,运行第三脚本,以获得所述第二环境变量参数;或者根据预先配置的配置信息,获得所述第二环境变量参数。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述第一脚本包括local脚本和run.sh脚本;所述利用所述启动参数,运行第一脚本,以获得所述待测试程序相关的第一环境变量参数,包括:利用所述启动参数, 运行local脚本;其中,所述local脚本用于检查所述启动参数是否正确,若所述启动参数不正确,则返回输入手册,若所述启动参数正确,则准备工作目录,所述工作目录下的文件包括作业配置文件、所述待测试程序和所述MapReduce分布式系统的系统程序;运行run.sh脚本;其中,所述run.sh脚本用于解析所述MapReduce启动命令,获得所述第一环境变量参数,将所述第一环境变量参数写到所述作业配置文件中;所述run.sh脚本还用于根据所述第一环境变量参数中的mapper参数和/或reducer参数,执行Map任务和/或Reduce任务;其中,根据所述mapper参数,执行Map任务,包括:根据所述第一环境变量参数中的input参数,将所述待测试程序需要处理的与所述input参数所指示的数目一致的输入文件切分成所述数目的分片。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述第三脚本包括!■印lace_c0nf.sh脚本;所述利用所述启动参数,运行第三脚本,以获得所述第二环境变量参数,包括:利用所述集群配置文件,运行replace_conf.sh脚本;其中,所述replace_conf.sh脚本用于读取所述集群配置文件,获得所述第二环境变量参数,将所述第二环境变量参数写到所述作业配置文件中。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述第二脚本包括env.sh脚本和localrunner.py脚本;所述利用所述第一环境变量参数和所述第二环境变量参数,运行第二脚本,以运行所述待测试程序,包括:运行env.sh脚本;其中,所述env.sh脚本用于对所述作业配置文件中的所述第一环境变量参数和所述第二环境变量参数进行加载;运行localrunner.py脚本;其中,所述localrunner.py脚本用于生成控制信息和执行信息,以及利用套接字将所述控制信息和所述执行信息传递给所述待测试程序,以运行所述待测试程序,对所述分片的输入文件对应的任务进行处理。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述工作目录下的文件还包括用于进行性能测试的动态库文件;所述方法还包括:根据所述第一环境变量参数中的性能测试参数,利用所述动态库文件,对所述待测试程序进行性能测试。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:根据所述作业配置文件中的debug参数,对所述待测试程序进行调试。本专利技术的另一方面,提供一种MapReduce分布式系统程序的测试设备,包括:接收单元,用于接收MapReduce启动命令,所述MapReduce启动命令用于启动MapReduce分布式系统的待测试程序,所述MapReduce启动命令中包含启动参数; 运行单元,用于利用所述启动参数,运行第一脚本,以获得所述待测试程序相关的第一环境变量参数;获得单元,用于获得所述MapReduce分布式系统相关的第二环境变量参数;测试单元,用于利用所述第一环境变量参数和所述第二环境变量参数,运行第二脚本,以运行所述待测试程序。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述获得单元,具体用于利用集群配置文件,运行第三脚本,以获得所述第二环境变量参数;或者根据预先配置的配置信息,获得所述第二环境变量参数。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述第一脚本包括local脚本和run.sh脚本;所述运行单元,具体用于利用所述启动参数,运行local脚本;其中,所述local脚本用于检查所述启动参数是否正确,若所述启动参数不正确,则返回输入手册,若所述启动参数正确,则准备工作目录,所述工作目录下的文件包括作业配置文件、所述待测试程序和所述MapReduce分布式系统的系统程序;以及运行run.sh脚本;其中,所述run.sh脚本用于解析所述MapReduce启动命令,获得所述第一环境变量参数,将所述第一环境变量参数写到所述作业配置文件中;所述run.sh脚本还用于根据所述第一环境变量参数中的mapper参数和/或reducer参数,执行Map任务和/或Reduce任务;其中,根据所述mapper参数,执行Map任务,包括:根据所述第一环境变量参数中的input参数,将所述待测试程序需要处理的与所述input参数所指示的数目一致的输入文件切分成所述数目的分片。如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述第三脚本包括replace_conf.sh脚本;所述获得单元,具体用于利用所述集群配置文件,运行replace_conf.sh脚本;其中,所述replace_conf.sh脚本用于读取所述集群配置文件本文档来自技高网...

【技术保护点】
一种MapReduce分布式系统程序的测试方法,其特征在于,包括:接收MapReduce启动命令,所述MapReduce启动命令用于启动MapReduce分布式系统的待测试程序,所述MapReduce启动命令中包含启动参数;利用所述启动参数,运行第一脚本,以获得所述待测试程序相关的第一环境变量参数;获得所述MapReduce分布式系统相关的第二环境变量参数;利用所述第一环境变量参数和所述第二环境变量参数,运行第二脚本,以运行所述待测试程序。

【技术特征摘要】
1.一种MapReduce分布式系统程序的测试方法,其特征在于,包括: 接收MapReduce启动命令,所述MapReduce启动命令用于启动MapReduce分布式系统的待测试程序,所述MapReduce启动命令中包含启动参数; 利用所述启动参数,运行第一脚本,以获得所述待测试程序相关的第一环境变量参数; 获得所述MapReduce分布式系统相关的第二环境变量参数; 利用所述第一环境变量参数和所述第二环境变量参数,运行第二脚本,以运行所述待测试程序。2.根据权利要求1所述的方法,其特征在于,所述获得所述MapReduce分布式系统相关的第二环境变量参数,包括: 利用集群配置文件,运行第三脚本,以获得所述第二环境变量参数;或者 根据预先配置的配置信息,获得所述第二环境变量参数。3.根据权利要求1或2所述的方法,其特征在于,所述第一脚本包括local脚本和run.sh脚本;所述利用所述启动参数,运行第一脚本,以获得所述待测试程序相关的第一环境变量参数,包括: 利用所述启动参数,运行local脚本;其中,所述local脚本用于检查所述启动参数是否正确,若所述启动参数不正确,则返回输入手册,若所述启动参数正确,则准备工作目录,所述工作目录下的文件包括作业配置文件、所述待测试程序和所述MapReduce分布式系统的系统程序; 运行run.sh脚本;其中,所述run.sh脚本用于解析所述MapReduce启动命令,获得所述第一环境变量参数,将所述第一环境变量参数写到所述作业配置文件中;所述run.sh脚本还用于根据所述第一环境变量参数中的mapper参数和/或reducer参数,执行Map任务和/或Reduce任务;其中,根据所述mapper参数,执行Map任务,包括: 根据所述第一环境变量参数中的input参数,将所述待测试程序需要处理的与所述input参数所指示的数目一致的输入文件切分成所述数目的分片。4.根据权利要求3所述的方法,其特征在于,所述第三脚本包括replace_conf.sh脚本;所述利用所述启动参数,运行第三脚本,以获得所述第二环境变量参数,包括: 利用所述集群配置文件,运行replace_conf.sh脚本;其中,所述replace_conf.sh脚本用于读取所述集群配置文件,获得所述第二环境变量参数,将所述第二环境变量参数写到所述作业配置文件中。5.根据权利要求3或4所述的方法,其特征在于,所述第二脚本包括env.sh脚本和localrunner.py脚本;所述利用所述第一环境变量参数和所述第二环境变量参数,运行第二脚本,以运行所述待测试程序,包括: 运行env.sh脚本;其中,所述env.sh脚本用于对所述作业配置文件中的所述第一环境变量参数和所述第二环境变量参数进行加载; 运行localrunner.py脚本;其中,所述localrunner.py脚本用于生成控制信息和执行信息,以及利用套接字将所述控制信息和所述执行信息传递给所述待测试程序,以运行所述待测试程序,对所述分片的输入文件对应的任务进行处理。6.根据权利要求3 5任一权利要求所述的方法,其特征在于,所述工作目录下的文件还包括用于进行性能测试的动态库文件;所述方法还包括: 根据所述第一环境变量参数中的性能测试参数,利用所述动态库文件,对所述待测试程序进行性能测试。7.根据权利要求1 6任一权利要求所述的方法,其特征在于,所述方法还包括: 根...

【专利技术属性】
技术研发人员:杨斐
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:

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

1