开发MapReduce

本文为您介绍如何在MaxCompute Studio上开发MapReduce,包括编写MapReduce、调试MapReduce、打包、上传和运行MapReduce。

前提条件

您需要完成以下操作:

编写MapReduce

  1. Project区域,右键单击Module的源码目录(即src > main > java),选择new > MaxCompute Java

    11
  2. 填写Name并选择类型为Driver,按下Enter键。

    新建Class
    • Name:创建的MaxCompute Java Class名称。如果还没有创建Package,在此处填写packagename.classname,会自动生成Package。

    • 选择类型为DriverMapperReducer

      说明

      您可以根据需要选择Driver、Mapper或Reducer类型:

      • Driver: MapReduce作业中的驱动程序类。负责构建一个MapReduce Job来运行,可以在Driver中指定运行的Mapper和Reducer类以及进行任务的各种信息配置,其可以看做Mapreduce作业的入口类。

      • Mapper: MapReduce数据处理的第一个阶段,在这里处理每条记录并生成相应的键值对。

      • Reducer: Mapper生成的中间输出到Reducer,Reducer对其进行处理并生成最终输出,然后将其保存在MaxCompute表中。

  3. 创建成功后,在编辑界面开发Java程序。

    Java模板已自动填充框架代码,您只需设置输入表、输出表、Mapper和Reducer类等信息。

    MapReduce Java程序示例,请参见WordCount示例

    编写程序

通过本地运行调试MapReduce

通过本地运行方式测试,查看MapReduce的运行结果是否符合预期。

  1. 右键单击编写完成的Java脚本,选择Run

  2. Run/Debug Configurations页面上选择此次运行的MaxCompute项目名称。

    **
  3. 单击OK,开始运行。

    说明
    • 本地运行会读取warehouse中指定的表数据作为输入,您可以在控制台查看日志输出。

    • 如果需要使用MaxCompute项目中的表数据,需要先在MaxCompute project中更改设置Endpoint和指定项目名称,指定的MaxCompute项目的表数据未被下载至warehouse目录中,会先下载数据;如果数据已经下载,则跳过此步骤。

    • 更多warehouse的说明,请参见warehouse目录

通过单元测试调试MapReduce

您可以参照examples目录下的WordCount单元测试示例,编写测试用例。示例

打包上传

调试成功之后,将Java程序打成JAR包,并作为资源上传至MaxCompute服务端。详情请参见打包、上传和注册

运行MapReduce

通过MaxCompute客户端运行MapReduce。

  1. 在左侧导航栏,单击Project Explorer

  2. 右键单击项目名称,选择Open in Console

  3. Console区域,执行如下命令运行MapReduce。

    更多命令请参见JAR命令

    jar -resources wordcount.jar -classpath D:\odps\clt\wordcount.jar com.aliyun.odps.examples.mr.WordCount wc_in wc_out;