MaxCompute 学习计划(三)

简介: MaxCompute的MapReduce,Graph,SDK等的技能checklist

MapReduce/Graph

当业务逻辑实在是复杂的时候,用SQL配合UDF(包括UDAF和UDTF)也无法实现的时候,可以使用MapReduce或Graph来实现。

作业

MapReduce

  • MapReduce文档里的十多个示例程序每个都很重要,务必每个都看懂每行代码的作用。参考链接文档
  • 使用Eclipse / InteliJ IDEA配置开发环境,可以修改warehouse里的数据然后观察任务的运行结果的变化。
  • 并用客户端工具运行任务,并了解-classpath和-resources参数的区别
  • 通过System.out和System.err输出日志信息,并使用Logview观察服务器上的日志。
  • 使用开发工具开发实现开窗函数。
  • 了解沙箱
  • 数加的大数据开发套件里的Open MR里的每个配置,对应到MR的main函数里是什么?可以参考SDK的说明。

Graph

  • 同MR,请至少看懂实例代码。链接文档对理解示例非常有帮助。

重难点

  • 二次排序。数据会先根据PartitionColumns的设置从Map发到不同Reduce后,先经过排序,然后根据OutputGroupingColumns相同的key进入reduce方法。所以OutputGroupingColumns的设置需要是OutputKeySortColumns的子集。理解了这些后也就可以理解为什么文档里的PartitionColumns和OutputGroupingColumns设置的都是一样的。而OutputKeySortColumns是在OutputGroupingColumns的基础上再增加排序列。
        //先把数据PartitionColumns设置分配给不同的Reducer
        job.setPartitionColumns(new String[] { "i1" });

        //在Reducer上执行排序,这样就能保证i2的顺序
        job.setOutputKeySortColumns(new String[] { "i1", "i2" });

        //这里数据已经都是排序好的,只需要根据i1里的内容来判断是否需要进同一个reduce方法
        job.setOutputGroupingColumns(new String[] { "i1" });
  • 资源表和资源文件的使用方法在UDTF的例子也有提到。一般资源的读取可以写在setup里,只需要读一次。

思考题

  • 如果有参数文件为什么不能直接打在jar包里,而是要用资源文件?
  • 阿里集团内部SQL+UDF的任务数远多于MapReduce任务,这个现象最直接的原因是什么?

参考答案

  • 安全沙箱
  • 工程效率

小技巧

SDK 和 Tunnel

使用SDK可以让我们可以使用JAVA/PYTHON语言调用MaxCompute命令。
Tunnel命令可以让我们把数据批量上传/下载。

作业

SDK

Tunnel

思考题

  • 基于SDK和TUNNEL实现用JAVA/PYTHON代码运行SQL,并把结果保存下来(需要考虑到Project的READ_TABLE_MAX_ROW限制,返回的数据不能超过10000行)。

参考答案

  • SQLTASK可以跑SQL。可以先把数据保存成一张临时表(CREATE TABLE XXX AS SELECT),并在任务结束后删除。下载数据使用TUNNEL。

小技巧

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
6月前
|
SQL 资源调度 数据库
数仓学习---14、大数据技术之DolphinScheduler
数仓学习---14、大数据技术之DolphinScheduler
|
7月前
|
分布式计算 Hadoop 大数据
Hadoop学习:深入解析MapReduce的大数据魔力之数据压缩(四)
Hadoop学习:深入解析MapReduce的大数据魔力之数据压缩(四)
|
7月前
|
分布式计算 资源调度 Hadoop
Hadoop学习指南:探索大数据时代的重要组成——Hadoop运行模式(下)
Hadoop学习指南:探索大数据时代的重要组成——Hadoop运行模式(下)
|
7月前
|
存储 数据采集 机器学习/深度学习
大数据学习的一些概念(值得背)
大数据学习的一些概念(值得背)
|
7月前
|
分布式计算 Hadoop 大数据
Hadoop学习:深入解析MapReduce的大数据魔力(三)
Hadoop学习:深入解析MapReduce的大数据魔力(三)
|
6月前
|
SQL NoSQL Java
Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)
Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)
|
6月前
|
人工智能 搜索推荐 数据可视化
电子学习中的大数据分析:每个人都应该知道的这些方面
电子学习中的大数据分析:每个人都应该知道的这些方面
|
1月前
|
存储 SQL 关系型数据库
【MySQL 数据库】6、一篇文章学习【索引知识】,提高大数据量的查询效率【文末送书】
【MySQL 数据库】6、一篇文章学习【索引知识】,提高大数据量的查询效率【文末送书】
56 0
|
7月前
|
存储 分布式计算 Hadoop
Hadoop学习:深入解析MapReduce的大数据魔力(二)
Hadoop学习:深入解析MapReduce的大数据魔力(二)
|
7月前
|
存储 分布式计算 Hadoop
Hadoop学习指南:探索大数据时代的重要组成——HDFS(上)
Hadoop学习指南:探索大数据时代的重要组成——HDFS(上)

相关产品

  • 云原生大数据计算服务 MaxCompute