大数据基础-MapReduce原理及核心编程思想

简介: MapReduce原理及核心编程思想

组件模块

MapReduce :MapReduce 是一个分布式运算程序的编程框架,核心功能是将用户编写的业务逻辑代码和MapReduce自带默认组件整合成一个完整的分布式运算程序,并发运行在一个 Hadoop 集群上。

MapReduce 进程:

  • MrAppMaster:负责整个程序的过程调度及状态协调
  • MapTask:负责 Map 阶段的整个数据处理流程。并行处理输入数据
  • ReduceTask:负责 reduce阶段的整个数据处理流程。对 Map 结果进行汇总

数据块: Block 是 HDFS 物理上把数据分成一块一块。 数据块是 HDFS 存储数据单位。

数据切片: 数据切片只是在逻辑上对输入进行分片, 并不会在磁盘上将其切分成片进行存储。数据切片是 MapReduce 程序计算输入数据的单位,一个切片会对应启动一个 MapTask。

Combiner:是MR程序中Mapper和Reducer之外的一种组件。Combiner是在每一个MapTask所在的节点运行。Combiner的作用为对每一个MapTask的输出进行局部汇总,以减小网络传输量。

核心编程思想

网络异常,图片无法展示
|

图中分为2个文件,一个200M,一个100M。一个block大小默认为128M,则第一个文件128M分配给一个MapTask,剩下72M分配给另外一个MapTask。

以词频统计为例:

Map阶段:

  • 读数据并按行处理
  • 按照指定分隔符进行切分单词
  • 切分结果为KV键值对(单词,1)
  • 将所有KV中的Key值按照首字母顺序溢写到两个分区的磁盘。

Reduce阶段:

  • 汇总多个MapTask的结果输出到结果文件。
  • MapReduce 编程模型只能包含一个 Map 阶段和一个 Reduce 阶段。
  • 如果用户的业务逻辑非常复杂,那就只能多个 MapReduce 程序,串行运行。

框架原理

网络异常,图片无法展示
|

InputFormat:对输入进行控制,FileInputFormat、TextInputFormat、CombineTextInputFormat等。

Mapper:数据源通过InputFormat取读后,交给Mapper进行后续业务逻辑(用户自己写的代码)处理。

Shuffle:包含排序、分区、压缩、合并等等。

Reducer:拉取Mapper阶段处理的数据,拉的过程中,要经历shuffle的过程。

OutputFormat:对输出的控制,比如可以输出到文件、mysql、Hbase、ES等。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
7月前
|
存储 SQL 分布式计算
MaxCompute 聚簇优化推荐原理
基于历史查询智能推荐Clustered表,显著降低计算成本,提升数仓性能。
440 4
MaxCompute 聚簇优化推荐原理
|
11月前
|
Cloud Native 大数据 Java
大数据新视界--大数据大厂之大数据时代的璀璨导航星:Eureka 原理与实践深度探秘
本文深入剖析 Eureka 在大数据时代分布式系统中的关键作用。涵盖其原理,包括服务注册、续约、发现及自我保护机制;详述搭建步骤、两面性;展示在大数据等多领域的应用场景、实战案例及代码演示。Eureka 如璀璨导航星,为分布式系统高效协作指引方向。
|
机器学习/深度学习 数据采集 分布式计算
大数据分析中的机器学习基础:从原理到实践
大数据分析中的机器学习基础:从原理到实践
701 3
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
330 3
|
消息中间件 分布式计算 druid
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
434 2
|
SQL 消息中间件 分布式计算
大数据-141 - ClickHouse 集群 副本和分片 Zk 的配置 Replicated MergeTree原理详解(一)
大数据-141 - ClickHouse 集群 副本和分片 Zk 的配置 Replicated MergeTree原理详解(一)
515 0
|
SQL 大数据
大数据-141 - ClickHouse 集群 副本和分片 Zk 的配置 Replicated MergeTree原理详解(二)
大数据-141 - ClickHouse 集群 副本和分片 Zk 的配置 Replicated MergeTree原理详解(二)
521 0
|
存储 SQL 分布式计算
大数据-127 - Flink State 04篇 状态原理和原理剖析:状态存储 Part2
大数据-127 - Flink State 04篇 状态原理和原理剖析:状态存储 Part2
204 0
|
存储 消息中间件 大数据
大数据-126 - Flink State 03篇 状态原理和原理剖析:状态存储 Part1
大数据-126 - Flink State 03篇 状态原理和原理剖析:状态存储 Part1
373 0
|
存储 SQL 分布式计算
大数据-125 - Flink State 02篇 状态原理和原理剖析:广播状态
大数据-125 - Flink State 02篇 状态原理和原理剖析:广播状态
254 0

热门文章

最新文章

下一篇
开通oss服务