开发者社区> 问答> 正文

MaxCompute用户指南:MapReduce:示例程序:Sleep示例



测试准备


  1. 准备好测试程序的 Jar 包,假设名字为 mapreduce-examples.jar,本地存放路径为 data\resources。

  2. 准备好 SleepJob 的测试资源。add jar data\resources\mapreduce-examples.jar -f;


测试步骤


在 odpscmd 中执行 Sleep,如下所示:
  1.   jar -resources mapreduce-examples.jar -classpath data\resources\mapreduce-examples.jar
  2.   com.aliyun.odps.mapred.open.example.Sleep 10;
  3.   jar -resources mapreduce-examples.jar -classpath data\resources\mapreduce-examples.jar
  4.   com.aliyun.odps.mapred.open.example.Sleep 100;


预期结果


作业成功结束后,对比不同 Sleep 时长的运行时间,可以看到效果。

代码示例

  1. package com.aliyun.odps.mapred.open.example;
  2. import java.io.IOException;
  3. import com.aliyun.odps.mapred.JobClient;
  4. import com.aliyun.odps.mapred.MapperBase;
  5. import com.aliyun.odps.mapred.conf.JobConf;
  6. public class Sleep {
  7.   private static final String SLEEP_SECS = "sleep.secs";
  8.   public static class MapperClass extends MapperBase {
  9.     @Override
  10.     public void setup(TaskContext context) throws IOException {
  11.       try {
  12.         Thread.sleep(context.getJobConf().getInt(SLEEP_SECS, 1) * 1000);
  13.       } catch (InterruptedException e) {
  14.         throw new RuntimeException(e);
  15.       }
  16.     }
  17.   }
  18.   public static void main(String[] args) throws Exception {
  19.     if (args.length != 1) {
  20.       System.err.println("Usage: Sleep <sleep_secs>");
  21.       System.exit(-1);
  22.     }
  23.     JobConf job = new JobConf();
  24.     job.setMapperClass(MapperClass.class);
  25.     job.setNumReduceTasks(0);
  26.     job.setNumMapTasks(1);
  27.     job.set(SLEEP_SECS, args[0]);
  28.     JobClient.runJob(job);
  29.   }
  30. }

展开
收起
行者武松 2017-10-23 17:47:26 2181 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
Data+AI时代大数据平台应该如何建设 立即下载
大数据AI一体化的解读 立即下载
极氪大数据 Serverless 应用实践 立即下载