本文为您介绍如何在MaxCompute Studio上开发MapReduce,包括编写MapReduce、调试MapReduce、打包、上传和运行MapReduce。
前提条件
您需要完成以下操作:
已连接MaxCompute项目。
更多连接MaxCompute项目操作,请参见管理项目连接。
已创建Java Module。
更多创建Java Module操作,请参见创建MaxCompute Java Module。
编写MapReduce
在Project区域,右键单击Module的源码目录(即 ),选择 。
填写Name并选择类型为Driver,按下Enter键。
Name:创建的MaxCompute Java Class名称。如果还没有创建Package,在此处填写packagename.classname,会自动生成Package。
选择类型为Driver、Mapper或Reducer。
说明您可以根据需要选择Driver、Mapper或Reducer类型:
Driver: MapReduce作业中的驱动程序类。负责构建一个MapReduce Job来运行,可以在Driver中指定运行的Mapper和Reducer类以及进行任务的各种信息配置,其可以看做Mapreduce作业的入口类。
Mapper: MapReduce数据处理的第一个阶段,在这里处理每条记录并生成相应的键值对。
Reducer: Mapper生成的中间输出到Reducer,Reducer对其进行处理并生成最终输出,然后将其保存在MaxCompute表中。
创建成功后,在编辑界面开发Java程序。
Java模板已自动填充框架代码,您只需设置输入表、输出表、Mapper和Reducer类等信息。
MapReduce Java程序示例,请参见WordCount示例。
通过本地运行调试MapReduce
通过本地运行方式测试,查看MapReduce的运行结果是否符合预期。
右键单击编写完成的Java脚本,选择Run。
在Run/Debug Configurations页面上选择此次运行的MaxCompute项目名称。
单击OK,开始运行。
说明本地运行会读取warehouse中指定的表数据作为输入,您可以在控制台查看日志输出。
如果需要使用MaxCompute项目中的表数据,需要先在MaxCompute project中更改设置Endpoint和指定项目名称,指定的MaxCompute项目的表数据未被下载至warehouse目录中,会先下载数据;如果数据已经下载,则跳过此步骤。
更多warehouse的说明,请参见warehouse目录。
通过单元测试调试MapReduce
您可以参照examples目录下的WordCount单元测试示例,编写测试用例。
打包上传
调试成功之后,将Java程序打成JAR包,并作为资源上传至MaxCompute服务端。详情请参见打包、上传和注册。
运行MapReduce
通过MaxCompute客户端运行MapReduce。
在左侧导航栏,单击Project Explorer。
右键单击项目名称,选择Open in Console。
在Console区域,执行如下命令运行MapReduce。
更多命令请参见JAR命令。
jar -resources wordcount.jar -classpath D:\odps\clt\wordcount.jar com.aliyun.odps.examples.mr.WordCount wc_in wc_out;