[发明专利]用于对hadoop streaming脚本进行测试的方法及装置有效
| 申请号: | 201210019560.2 | 申请日: | 2012-01-20 |
| 公开(公告)号: | CN103218287A | 公开(公告)日: | 2013-07-24 |
| 发明(设计)人: | 郑海兵;张静 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 宋合成 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 hadoop streaming 脚本 进行 测试 方法 装置 | ||
1.一种用于对hadoop streaming脚本进行测试的方法,其特征在于,包括以下步骤:
A.按行读取所述脚本的任务调度文件以获取所述脚本中的任务的任务名称和任务类型;
B.如果所述任务类型是单机任务,则根据所述任务名称以及所述脚本的任务描述文件提取与所述任务对应的源代码的路径;
C.根据所述源代码的路径提取所述源代码并对所述源代码进行扫描以生成与所述任务对应的测试case;以及
D.使用所述测试case对所述hadoop streaming脚本进行测试。
2.根据权利要求1所述的方法,其特征在于,进一步包括步骤:
E.如果所述任务类型是分布式任务,则根据所述任务名称以及所述脚本的任务描述文件获取与所述任务对应的描述;以及
F.如果所述描述中包括map命令或reduce命令,则提取所述map命令或所述reduce命令对应的源代码进行扫描以生成与所述map命令或所述reduce命令对应的测试case。
3.根据权利要求2所述的方法,其特征在于,进一步包括步骤:
如果所述描述中包含partition参数,则生成用于测试所述partition参数的测试case。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述步骤A包括:
从第一行开始读取所述脚本的任务调度文件;
判断所述第一行是否为注释行或空白行;
如果是,则跳过所述第一行并读取第二行;以及
如果否,则获取所述第一行中的任务的任务名称和任务类型。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述步骤C包括:
如果所述源代码中存在函数,则为每一个函数生成一个测试case;以及
如果所述源代码中不存在函数,则为所述源代码生成一个测试case。
6.根据权利要求2或3所述的方法,其特征在于,所述描述包括输入地址,输出地址,partition参数,需要上传的文件,map命令,reduce命令。
7.根据权利要求6所述的方法,其特征在于,所述步骤D包括:
将测试数据上传至所述输入地址;
备份所述任务描述文件;
将所述reduce命令或所述map命令设置为空;
调用hadoop streaming进行执行并根据所述输出地址将执行结果输出;以及
将所述任务描述文件还原。
8.根据权利要求6所述的方法,其特征在于,所述步骤D包括:
将测试数据上传至所述输入地址;
备份所述任务描述文件;
将所述reduce命令设置为cat;
调用hadoop streaming进行执行并根据所述输出地址将执行结果输出;以及
将所述任务描述文件还原。
9.一种用于对hadoop streaming脚本进行测试的装置,其特征在于,包括:
读取模块,所述读取模块用于按行读取所述脚本的任务调度文件以获取所述脚本中的任务的任务名称和任务类型;
提取模块,所述提取模块用于在所述任务类型是单机任务时,根据所述任务名称以及所述脚本的任务描述文件提取与所述任务对应的源代码的路径;
生成模块,所述生成模块用于根据所述源代码的路径提取所述源代码并对所述源代码进行扫描以生成与所述任务对应的测试case;以及
测试模块,所述测试模块用于使用所述测试case对所述hadoop streaming脚本进行测试。
10.根据权利要求9所述的装置,其特征在于:
所述提取模块用于在所述任务类型是分布式任务时,根据所述任务名称以及所述脚本的任务描述文件提取与所述任务对应的描述;以及
所述生成模块用于在所述描述中包括map命令或reduce命令时,提取所述map命令或所述reduce命令对应的源代码进行扫描以生成与所述map命令或所述reduce命令对应的测试case。
11.根据权利要求10所述的装置,其特征在于:
所述生成模块用于在所述描述中包含partition参数时,生成用于测试所述partition参数的测试case。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210019560.2/1.html,转载请声明来源钻瓜专利网。





