本文为您介绍如何在MaxCompute Studio上开发MapReduce。

开发MapReduce

  1. 右键单击Module的源码目录(即src > main > java),选择new > MaxCompute Java
  2. 分别创建Driver、Mapper、Reducer。
    • Name:输入名称。
    • Kind:依次选择DriverMapperReducer
  3. 模板已自动填充框架代码,只需设置输入表、输出表、Mapper和Reducer类等信息。
    说明 MapReduce开发详情请参见编写MapReduce(可选)

调试MapReduce

开发完成后,测试MapReduce代码,看其是否符合预期,目前支持以下两种测试方式:
  • 单元测试:参考examples目录下的WordCount单测实例,编写自己测试用例。
  • 本地运行MapReduce:本地运行时需要指定运行数据源。有以下两种方式设定测试数据源:
    • Studio通过Tunnel服务自动下载指定MaxCompute Project的表数据到warehouse目录下。默认下载100条,如需更多数据测试,请自行使用Console的Tunnel命令或者Studio的表下载功能。
    • 提供mock项目(example_project)及表数据,用户可参考warehouseexample_project自行设置。
    按照如下步骤测试MapReduce:
    1. 运行MapReduce:右键单击Driver类,选择Run
    2. RunDebug Configuration页面上选择此次运行的MaxCompute项目空间名称。
    3. 单击OK
      如果指定MaxCompute Project的表数据未被下载到warehouse中,则先下载数据;如果采用mock项目或已下载过数据则跳过此步骤。MapReduce Local Run框架会读取warehouse中指定表的数据作为MapReduce的输入,开始本地运行。您可以在控制台看到日志输出和结果打印。

生产运行MapReduce

本地调试通过后,将MapReduce发布到服务端,在MaxCompute分布式环境下运行MapReduce。

  1. 将MapReduce程序打成Jar包,并发布到服务端。详细操作步骤请参见打包、上传和注册
  2. 通过MaxCompute Console运行Jar命令
    1. 打开Project Explorer Window
    2. 右键单击项目名称,选择Open in Console,可在Console命令行中输入如下Jar命令。
      jar-libjars wordcount.jar -classpath D:\odps\clt\wordcount.jar com.aliyun.odps.examples.mr.WordCount wc_in wc_out;