MaxCompute提供MapReduce编程接口。您可以通过创建ODPS MR类型节点并提交任务调度,使用MapReduce Java API编写MapReduce程序来处理MaxCompute中的数据。

前提条件

您需要上传并提交、发布使用的资源后,再创建ODPS MR节点。

ODPS MR类型节点的编辑和使用方法,请参见WordCount示例

操作步骤

  1. 进入数据开发页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
  2. 创建JAR资源。
    1. 鼠标悬停至新建图标,单击MaxCompute > 资源 > JAR
      您也可以找到相应的业务流程,右键单击MaxCompute,选择新建 > 资源 > JAR
    2. 新建资源对话框中,输入资源名称,并选择目标文件夹
      说明
      • 如果绑定多个实例,则需要选择MaxCompute引擎实例
      • 如果该JAR包已经在MaxCompute(ODPS)客户端上传过,则需要取消勾选上传为ODPS资源,否则上传会报错。
      • 资源名称无需与上传的文件名保持一致。
      • 资源名称命名规范:1~128个字符,字母、数字、下划线、小数点,大小写不敏感,JAR资源的后缀为.jar,Python资源的后缀为.py
    3. 单击点击上传,在本地选择相应文件后,单击打开
      本文以mapreduce_example.jar为例。
    4. 新建资源对话框中,单击确定
    5. 单击工具栏中的保存提交图标,保存并提交资源至调度开发服务器端。
  3. 创建ODPS MR节点。
    1. 鼠标悬停至新建图标,单击MaxCompute > ODPS MR
      您也可以找到相应的业务流程,右键单击MaxCompute,选择新建 > ODPS MR
    2. 新建节点对话框中,输入节点名称,并选择目标文件夹
      说明 节点名称必须是大小写字母、中文、数字、下划线(_)和小数点(.),且不能超过128个字符。
    3. 单击提交
  4. 在节点的编辑页面输入代码,示例如下。
    --创建输入表。
    CREATE TABLE if not exists jingyan_wc_in (key STRING, value STRING);
    --创建输出表。
    CREATE TABLE if not exists jingyan_wc_out (key STRING, cnt BIGINT);
        ---创建系统dual。
        drop table if exists dual;
        create table dual(id bigint); --如果工作空间不存在该伪表,则需要创建并初始化数据。
        ---向系统伪表初始化数据。
        insert overwrite table dual select count(*)from dual;
        ---向输入表wc_in插入示例数据。
        insert overwrite table jingyan_wc_in select * from (
        select 'project','val_pro' from dual 
        union all 
        select 'problem','val_pro' from dual
        union all 
        select 'package','val_a' from dual
        union all 
        select 'pad