干翻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之间传输的数据量变小。

相关文章
|
6天前
|
分布式计算 Hadoop
Hadoop系列 mapreduce 原理分析
Hadoop系列 mapreduce 原理分析
42 1
|
6天前
|
存储 分布式计算 监控
Hadoop【基础知识 01+02】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
142 2
|
5天前
|
分布式计算 并行计算 搜索推荐
Hadoop MapReduce计算框架
【5月更文挑战第10天】HadoopMapReduce计算框架
13 3
|
6天前
|
分布式计算 数据可视化 Hadoop
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现
49 0
|
6天前
|
分布式计算 资源调度 Hadoop
java与大数据:Hadoop与MapReduce
java与大数据:Hadoop与MapReduce
28 0
|
6天前
|
分布式计算 监控 Hadoop
Hadoop【基础知识 02】【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】Hadoop【基础知识 02】【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
61 0
|
6天前
|
存储 分布式计算 监控
Hadoop的JobTracker和TaskTracker在MapReduce中的作用是什么?
Hadoop的JobTracker和TaskTracker在MapReduce中的作用是什么?
62 0
|
6天前
|
存储 分布式计算 Hadoop
大数据处理架构Hadoop
【4月更文挑战第10天】Hadoop是开源的分布式计算框架,核心包括MapReduce和HDFS,用于海量数据的存储和计算。具备高可靠性、高扩展性、高效率和低成本优势,但存在低延迟访问、小文件存储和多用户写入等问题。运行模式有单机、伪分布式和分布式。NameNode管理文件系统,DataNode存储数据并处理请求。Hadoop为大数据处理提供高效可靠的解决方案。
99 2
|
6天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
1天前
|
存储 分布式计算 Hadoop
大数据存储技术(1)—— Hadoop简介及安装配置
大数据存储技术(1)—— Hadoop简介及安装配置
11 0

相关实验场景

更多