全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
MaxCompute

Sleep示例

更新时间:2017-10-17 14:15:33

测试准备

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

  2. 准备好 SleepJob 的测试资源。

    1. 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. }
本文导读目录