阿里云大数据ACP认证知识点梳理7——MAP REDUCE

简介:

image

1、输入数据:对文本进行分片,将每片内的数据作为单个Map Worker的输入。

2、Map阶段:Map处理输入,每获取一个数字,将数字的Count 设置为1,并将此对输出,此时以Word作为输出数据的Key。

3、Shuffle>合并排序:在Shuffle阶段前期,首先对每个Map Worker的输出,按照Key值(即Word值)进行排序。排序后进行Combiner操作,即将Key值(Word值)相同的Count累加,构成一个新的对。此过程被称为合并排序。
4、Shuffle>分配Reduce:在Shuffle阶段后期,数据被发送到Reduce端。Reduce Worker收到数据后依赖Key值再次对数据排序。

5、Reduce阶段:每个Reduce Worker对数据进行处理时,采用与Combiner相同的逻辑,将Key值(Word 值)相同的Count累加,得到输出结果。

6、输出结果数据。

**MAPREDUCE规则限制:
**

MaxCompute提供三个版本的MapReduce编程接口,如下所示:

MaxCompute MapReduce、MaxCompute的原生接口,执行速度更快,开发更便捷,不暴露文件系统。

MR2(扩展MapReduce):对MaxCompute MapReduce的扩展,支持更复杂的作业调度逻辑。MapReduce的实现方式与MaxCompute原生接口一致。

Hadoop兼容版本:高度兼容Hadoop MapReduce ,与MaxCompute原生MapReduce,MR2不兼容。

不能通过MapReduce读写外部表中的数据。

MaxCompute MapReduce的输入、输出,支持MaxCompute内置类型的Bigint、Double、String、Datetime和Boolean类型,不支持您自定义类型。

接受多表输入,且输入表的Schema可以不同。在map函数中,您可以获取当前Record对应的Table信息。

输入可以为空,不支持视图(View)作为输入。

Reduce接受多路输出,可以输出到不同表,或者同一张表的不同分区。不同输出的Schema可以不同。不同输出间通过label进行区分,默认输出不必加label,但目前不接受没有输出的情况。

**JAVA沙箱:
**

MaxCompute MapReduce及UDF程序在分布式环境中运行时,受到Java沙箱的限制(MapReduce作业的主程序,例如MR Main则不受此限制),具体限制如下所示。

不允许直接访问本地文件,只能通过MaxCompute MapReduce/Graph提供的接口间接访问。

读取resources选项指定的资源,包括文件、Jar包和资源表等。

通过System.out和System.err输出日志信息,可以通过MaxCompute客户端的Log命令查看日志信息。

不允许直接访问分布式文件系统,只能通过MaxCompute MapReduce/Graph访问到表的记录。

不允许JNI调用限制。

不允许创建Java线程,不允许启动子进程执行Linux命令。

不允许访问网络,包括获取本地IP地址等,都会被禁止。

Java反射限制:suppressAccessChecks权限被禁止,无法setAccessible某个private的属性或方法,以达到读取private属性或调用private方法的目的。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
634 2
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
661 2
ES5常见的数组方法:forEach ,map ,filter ,some ,every ,reduce (除了forEach,其他都有回调,都有return)
ES5常见的数组方法:forEach ,map ,filter ,some ,every ,reduce (除了forEach,其他都有回调,都有return)
709 154
|
机器学习/深度学习 SQL 数据采集
大数据行业权威认证盘点:这些证书让你的简历更受大厂青睐
这些认证不仅能够为求职者提供有力的能力证明,更能帮助HR快速识别符合岗位要求的技术人才。对于希望进入大数据领域的从业者来说,选择适合自身职业规划的认证,将大大提升职业竞争力。
|
人工智能 算法 大数据
算法金 | 推导式、生成器、向量化、map、filter、reduce、itertools,再见 for 循环
这篇内容介绍了编程中避免使用 for 循环的一些方法,特别是针对 Python 语言。它强调了 for 循环在处理大数据或复杂逻辑时可能导致的性能、可读性和复杂度问题。
473 6
算法金 | 推导式、生成器、向量化、map、filter、reduce、itertools,再见 for 循环
|
JavaScript 前端开发
js map和reduce
js map和reduce
|
分布式计算 大数据 分布式数据库
"揭秘HBase MapReduce高效数据处理秘诀:四步实战攻略,让你轻松玩转大数据分析!"
【8月更文挑战第17天】大数据时代,HBase以高性能、可扩展性成为关键的数据存储解决方案。结合MapReduce分布式计算框架,能高效处理HBase中的大规模数据。本文通过实例展示如何配置HBase集群、编写Map和Reduce函数,以及运行MapReduce作业来计算HBase某列的平均值。此过程不仅限于简单的统计分析,还可扩展至更复杂的数据处理任务,为企业提供强有力的大数据技术支持。
557 1
|
分布式计算 安全 大数据
HAS插件式Kerberos认证框架:构建安全可靠的大数据生态系统
在教育和科研领域,研究人员需要共享大量数据以促进合作。HAS框架可以提供一个安全的数据共享平台,确保数据的安全性和合规性。
|
分布式计算 大数据 Hadoop
MapReduce:大数据处理的基石
【8月更文挑战第31天】
814 0
|
机器学习/深度学习 分布式计算 算法
MaxCompute 的 MapReduce 与机器学习
【8月更文第31天】随着大数据时代的到来,如何有效地处理和分析海量数据成为了一个重要的课题。MapReduce 是一种编程模型,用于处理和生成大型数据集,其核心思想是将计算任务分解为可以并行处理的小任务。阿里云的 MaxCompute 是一个面向离线数据仓库的计算服务,提供了 MapReduce 接口来处理大规模数据集。本文将探讨如何利用 MaxCompute 的 MapReduce 功能来执行复杂的计算任务,特别是应用于机器学习场景。
475 0

热门文章

最新文章