本文将以WordCount为例,为您介绍新建工程后,如何在DataWorks进行MapReduce开发。

新建工程

  1. 登录DataWorks控制台,单击相应工作空间后的进入数据开发
  2. 单击左上角的图标,选择全部产品 > Function Studio
  3. 单击工作空间页面的新建代码工程
  4. 新建项目对话框中,输入工程名工程描述,并选择运行环境(本文以UDFJava Project为例)。
  5. 配置完成后,单击提交

开发项目

进入src/main/java/com.alibaba.dataworks/mapred下,双击WordCount.java,打开WordCount的MapReduce示例代码。开发项目

示例代码可以对输入表中的单词进行次数统计,将统计结果写入输出表中。输入输出分别是两个表,详情请参见WordCount示例

调试项目

目前Function Studio不支持MapReduce项目进行Debug,需要发布代码至DataWork开发环境后,跳转至DataWorks中进行逻辑验证。

说明 目前Function Studio仅支持编码和编译打包两个功能。

发布项目

  1. Function Studio编译打包代码发布至Data Studio开发环境。
    1. 鼠标悬停至提交资源,单击提交资源至Data Studio开发环境
    2. 提交资源至Data Studio开发环境对话框中,选择目标业务空间目标业务流程,并输入资源名称(本文以WordCountDemo_1.0.0.jar为例)。
    3. 默认勾选如果已经存在强制更新,单击确认
    4. 发布成功后,在输出中获取资源在DataStudio中的定位链接。单击该链接即可跳转至数据开发 > 上传资源页面。确认
  2. 在DataWorks中创建MapReduce节点进行测试。
    1. 数据开发页面,打开相应的业务流程。
    2. 右键单击MaxCompute,选择新建 > ODPS MR,详情请参见ODPS MR
    3. 在ODPS MR节点的编辑界面,创建测试表并添加测试数据。
      --创建输入表
      create table if not exists wc_input (key string,value string);
      --创建输出表
      create table if not exists wc_out (key string,cnt bigint);
      --插入数据至输入表
      insert overwrite table wc_input values ('hello','odps');
    4. 右键单击上传的资源,单击引用资源,在右侧的ODPS MR节点编辑界面自动显示--@resource_reference{"WordCountDemo_1.0.0.jar"}引用资源
    5. 输入上传的JAR包的jar -resources-classpath信息,示例如下。
      jar -resources WordCountDemo_1.0.0.jar 
      -classpath ./WordCountDemo_1.0.0.jar com.alibaba.dataworks.mapred.WordCount wc_input wc_out
    6. 单击工具栏中的运行
  3. 单击节点编辑页面右侧的调度配置,即可进入调度配置页面,详情请参见调度配置模块。
  4. 完成调度配置后,单击工具栏中的保存,提交(提交并解锁)到开发环境。
  5. 发布节点任务,详情请参见任务发布
  6. 在生产环境进行测试,详情请参见周期任务