干翻Hadoop系列文章【03】:MapReduce概念详解

简介: 干翻Hadoop系列文章【03】:MapReduce概念详解

引言

数据存储在分布式文件系统中HDFS里边,通过使用Hadoop资源管理系统YARN,Hadoop可以将MapReduce计算,转移到有存储部分的数据的各台机器上。

一:概念和原理

1:MapReduce作业

MapReduce作业被称为一个工作单元。

1:一个工作单元的逻辑组成元素:输入数据、MapReduce程序、配置信息。

2:Hadoop将工作单元划分成多个任务(Task)任务有两类(Map和Reduce)。

3:Task任务运行在HDFS集群上,通过YARN进行调度。

4:一个任务失败,将在集群节点上自动重新调度运行。

2:分片

1):分片概念

MapReduce输入数据是等长的小数据块称为分片。一个分片对应一个Map任务,对应任务运行用户定义的map函数,从而处理分片中的每条记录。

2):分片大小

事实A:块越小,从磁盘到内存中的内容越少,计算越快。从这个角度越小越好

事实B:HDFS分块,是越大越好。越大,总体寻址开销小,越小的话,内容中需要存150B字节的源数据,块越小导致内存不够用。

两者相悖,取折中的办法,一秒钟机械磁盘的传输速率100MB,所以这里取得块的大小是128MB

事实C:分片比块大,一个分片需要读多个块,大概率多个块不在在一台物理机,导致网络IO

事实D:分片比快小,多个分片运行一个快,引发单个块如何划分给多个Map任务的问题。

结论:最理想的状态就是一个分片对应一个HDFS的块的大小

3:Map任务

1:Map任务将会把任务作为Reduce任务的入参

2:Map任务产出结果存储在磁盘而非HDFS,杀鸡用不到宰牛刀,HDFS里边还得做数据副本,也就是数据备份。

3:Map任务结果丢失或者传输失败怎么办?其他节点在走一遍。

4:Reduce任务

Reduce任务没数据本地化的这一说。单个Reduce任务输入来自于所有Map任务的输出。Reduce任务首先进行数据合并,数据合并为一个整体之后进行Reduce任务处理。处理完毕之后Reduce任务结果需要基于网络带宽写入到HDFS里边。

该图 清晰的表示了Map任务和Reduce任务之间的关系是混洗(shuffle)

二:组合器函数combiner

组合器函数是一个优化项,减少Map与Reduce之间的网络传输的带宽。

本质上是对Map函数处理结果的组合和精简。让Map和Reduce之间传输的数据量变小。

相关文章
|
2月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
75 2
|
13天前
|
数据采集 分布式计算 Hadoop
使用Hadoop MapReduce进行大规模数据爬取
使用Hadoop MapReduce进行大规模数据爬取
|
2月前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
101 3
|
2月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
47 1
|
2月前
|
分布式计算 资源调度 数据可视化
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
Hadoop-06-Hadoop集群 历史服务器配置 超详细 执行任务记录 JobHistoryServer MapReduce执行记录 日志聚合结果可视化查看
50 1
|
2月前
|
分布式计算 资源调度 Hadoop
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
Hadoop-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看
54 1
|
2月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
51 0
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
98 0
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
43 0
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
56 0

相关实验场景

更多