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

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

请上传并提交、发布需要用到的资源后,再建立ODPS MR节点。

新建资源实例

  1. 登录DataWorks控制台,单击相应工作空间后的进入数据开发
  2. DataStudio(数据开发)页面,新建JAR资源。
    您可以通过以下两种方式新建JAR资源:
    • 鼠标悬停至新建,单击MaxCompute > 资源 > JAR
    • 打开相应业务流程下的MaxCompute,右键单击资源,选择新建 > JAR
  3. 新建资源对话框中,输入资源名称,并选择目标文件夹,单击点击上传,选择相应的文件进行上传。点击上传
    说明 如果绑定多个实例,则需要选择MaxCompute引擎实例
    本例中使用的示例为mapreduce_example.jar
    说明
    • 如果该JAR包已经在ODPS客户端上传过,则需要取消勾选上传为ODPS资源本次上传,资源会同步上传至ODPS中,否则上传会报错。
    • 资源名称无需与上传的文件名一致。
    • 资源名命名规范:1~128个字符,字母、数字、下划线、小数点,大小写不敏感,JAR资源时后缀是.jar,Python资源时后缀为.py。
  4. 单击确定
  5. 单击提交,提交资源至调度开发服务器端。
  6. 发布节点任务。

    具体操作请参见发布管理

新建ODPS MR节点

  1. 数据开发页面,打开相应的业务流程,右键单击MaxCompute,选择新建 > ODPS MR
  2. 双击新建的ODPS MR节点,进入编辑页面输入节点代码。

    您可以在ODPS MR节点的编辑页面进行保存提交等操作,详情请参见ODPS MR节点界面功能点

    节点代码示例如下。
    --创建输入表。
    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); --如果project中不存在此伪表,则需创建并初始化数据。
        ---向系统伪表初始化数据。
        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','val_a' from dual
          ) b;
    -- 引用刚刚上传的Jar包资源,可以在资源管理栏中找到该资源,右键引用资源。
    --@resource_reference{"mapreduce-examples.jar"}
    jar -resources mapreduce-examples.jar -classpath ./mapreduce-examples.jar com.aliyun.odps.mapred.open.example.WordCount jingyan_wc_in jingyan_wc_out
    代码说明如下:
    • --@resource_reference:您可以右键单击资源名称,选择引用资源,即可自动产生该条语句。
    • -resources:引用到的Jar资源文件名。
    • -classpath:Jar包路径,由于已经引用了资源,此处路径统一为./下的Jar包即可。
    • com.aliyun.odps.mapred.open.example.WordCount:执行过程调用Jar中的主类,需与Jar中的主类名称保持一致。
    • jingyan_wc_in:MR的输入表名称,已在上述代码中提前创建。
    • jingyan_wc_out:MR的输出表名称,已在上述代码中提前创建。
    • 一个MR调用多个JAR资源时,classpath写法为-classpath ./xxxx1.jar,./xxxx2.jar,即两个路径之间用英文逗号分隔。
    说明 ODPS MR节点中调用参数时,请参见调度参数
  3. 节点调度配置。

    单击节点编辑区域右侧的调度配置,即可进入节点调度配置页面,详情请参见调度配置

  4. 提交节点任务。

    完成调度配置后,单击左上角的保存,提交(提交并解锁)到开发环境。

  5. 发布节点任务。

    具体操作请参见发布管理

  6. 在生产环境测试。

    具体操作请参见周期任务