通过SDK提交MapReduce作业

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 通过SDK提交MR作业的步骤如下:步骤一:      编写MR程序,导出jar包,jar包可以不包含main方法(main方法是在本地执行)        步骤二:       上传jar包及所需的资源       (1) 通过console上传jar包到server端: add jar xxx..

快速、完全托管的TB/PB级数据仓库解决方案,向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。

通过SDK提交MR作业的步骤如下:


步骤一:
      编写MR程序,导出jar包,jar包可以不包含main方法(main方法是在本地执行)
        
步骤二:
       上传jar包及所需的资源
       (1) 通过console上传jar包到server端: add jar xxx.jar
       (2)也可以通过SDK写程序上传,参考相关方法:com.aliyun.odps.ODPS.resources().create(xxx,xxx)


步骤三:

   对main方法进行改进 ,主要包括两部分:
   (1)设置账户信息(accessId/accessKey/endpoint),充当console/conf/odps_conf.ini中的配置功能
   (2)设置MR中使用的资源,充当jar -resources xxx1.jar,xxx2.jar的功能
           通过方法job.setResources( "test13.jar" );设置
 
注:本地用户Mapper类和Reducer类方法是空的(本地并不会执行这份代码),存在的目的是保证main方法编译通过
package com.aliyun.odps.examples.mr;

import com.aliyun.odps.Odps;
import com.aliyun.odps.account.Account;
import com.aliyun.odps.account.AliyunAccount;
import com.aliyun.odps.data.TableInfo;
import com.aliyun.odps.mapred.JobClient;
import com.aliyun.odps.mapred.MapperBase;
import com.aliyun.odps.mapred.ReducerBase;
import com.aliyun.odps.mapred.RunningJob;
import com.aliyun.odps.mapred.conf.JobConf;
import com.aliyun.odps.mapred.conf.SessionState;
import com.aliyun.odps.mapred.utils.InputUtils;
import com.aliyun.odps.mapred.utils.OutputUtils;
import com.aliyun.odps.mapred.utils.SchemaUtils;

/* 
 * 该示例展示了MapReduce程序中的基本结构
 * 
 */
public class WordCount {

  public static class TokenizerMapper extends MapperBase {
  }

  /**
   * A combiner class that combines map output by sum them.
   */
  public static class SumCombiner extends ReducerBase {
  }

  /**
   * A reducer class that just emits the sum of the input values.
   */
  public static class SumReducer extends ReducerBase {

  }

  public static void main(String[] args) throws Exception {

    // /////////////额外添加的代码//////////
    String endpoint = "your_endpoint";
    String accessId = "your_access_id";
    String accessKey = "your_access_key";
    String project = "your_project";

    Account account = new AliyunAccount(accessId, accessKey);
    Odps odps = new Odps(account);
    odps.setDefaultProject(project);
    odps.setEndpoint(endpoint);

    SessionState.get().setOdps(odps);
    SessionState.get().setLocalRun(false);
    // ///////////////////////////////

    JobConf job = new JobConf();
    job.setMapperClass(TokenizerMapper.class);
    job.setCombinerClass(SumCombiner.class);
    job.setReducerClass(SumReducer.class);

    // /////////////额外添加的代码//////////
    // 资源名称列表,多个资源用逗号分隔
    job.setResources("test13.jar");
    // //////////////////////////////////

    job.setMapOutputKeySchema(SchemaUtils.fromString("word:string"));
    job.setMapOutputValueSchema(SchemaUtils.fromString("count:bigint"));

    InputUtils.addTable(TableInfo.builder().tableName("wc_in").build(), job);
    OutputUtils.addTable(TableInfo.builder().tableName("wc_out").build(), job);

    RunningJob rj = JobClient.runJob(job);
    rj.waitForCompletion();
  }

}

 

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
5月前
|
存储 分布式计算 监控
Hadoop【基础知识 01+02】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
274 2
|
4月前
|
分布式计算 Java Hadoop
实现多文件合并和去重的MapReduce作业
实现多文件合并和去重的MapReduce作业
|
4月前
|
分布式计算 大数据
mapreduce 实现带有ex前缀的词频统计wordcount 大作业
mapreduce 实现带有ex前缀的词频统计wordcount 大作业
|
5月前
|
数据采集 分布式计算 DataWorks
DataWorks产品使用合集之在DataWorks中,在MapReduce作业中指定两个表的所有分区如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
65 0
|
5月前
|
分布式计算 监控 Hadoop
Hadoop【基础知识 02】【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】Hadoop【基础知识 02】【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
226 0
|
资源调度 分布式计算 Java
MapReduce作业在YARN的内存分配设置
MapReduce作业在YARN的内存分配设置
364 0
MapReduce作业在YARN的内存分配设置
|
消息中间件 大数据 测试技术
如何在E-MapReduce上提交Storm作业处理Kafka数据
本文演示如何在E-MapReduce上部署Storm集群和Kafka集群,并运行Storm作业消费Kafka数据。
2809 0
|
分布式计算 监控 Java
0019-Yarn的JobHistory目录权限问题导致MapReduce作业异常
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 1.问题描述 Hive的MapReduce作业无法正常运行,日志如下: 0: jdbc:hive2://localhost:10000_>_select count(*) from student; … command(queryId.
1341 0
|
消息中间件 分布式计算 Hadoop
使用E-MapReduce提交Storm作业处理Kafka数据
本文演示如何在E-MapReduce上部署Storm集群和Kafka集群,并运行Storm作业消费Kafka数据。 环境准备 本文选择在杭州Region进行测试,版本选择EMR-3.
2182 0
下一篇
无影云桌面