图解大数据 | 分布式平台Hadoop与Map-Reduce详解

Hadoop深入浅出MapReduce详解(全网最细) 文章目录前言-MR概述1.Hadoop MapReduce设计思想及优缺点设计思想优点:缺点:2. Hadoop MapReduce核心思想3.MapReduce工作机制剖析MapReduce运行机制过程描述第一阶段:作业提交(图1-4步)第二阶段:作业初始化(图5-7步)第三阶段:任务的分配(图8)第四阶段:任务的执行(图9-11)第五阶段:作业完成Tips 知识点:进度和状态更新4.MR各组成部分工作机制原理4.1概览:4.2 MapTask工作机制4.3 ReduceTask工作机制4.4shuffl 阅读详情

ShowMeAI研究中心
作者:韩信子@ShowMeAI
教程地址:https://www.showmeai.tech/tutorials/84
本文地址:https://www.showmeai.tech/article-detail/168
声明:版权所有,转载请联系平台与作者并注明出处

收藏ShowMeAI查看更多精彩内容


1.Hadoop快速入门

1)Hadoop简介

Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。

  • Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中;

  • Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce;

  • Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力;

  • 几乎所有主流厂商都围绕Hadoop提供开发工具、开源软件、商业化工具和技术服务,如谷歌、微软、字节跳动、美团点评、淘宝等,都支持Hadoop。

关于 Hadoop的搭建与应用案例 欢迎大家关注ShowMeAI下列文章:

2)Hadoop发展简史

Hadoop现在已经广泛地应用在大数据任务中,而它最初其实只是由Apache Lucene项目的创始人Doug Cutting开发的文本搜索库。下面是它的发展历程。

分布式平台; Hadoop与Map-reduce详解; Hadoop快速入门; Hadoop发展简史; 2-1

  • Hadoop源自始于2002年的Apache Nutch项目——一个开源的网络搜索引擎,也是Lucene的一部分。

  • 2004年,Nutch项目也模仿GFS开发了自己的分布式文件系统NDFS(Nutch Distributed File System),也就是HDFS的前身。

  • 2004年,谷歌公司又发表了另一篇具有深远影响的论文,阐述了MapReduce分布式编程思想。

  • 2005年,Nutch开源实现了谷歌的MapReduce。

  • 2006年2月,Nutch中的NDFS和MapReduce开始独立出来,成为Lucene项目的一个子项目,称为Hadoop,同时,Doug Cutting加盟雅虎。

  • 2008年1月,Hadoop正式成为Apache顶级项目,Hadoop也逐渐开始被雅虎之外的其他公司使用。

  • 2008年4月,Hadoop打破世界纪录,成为最快排序1TB数据的系统,它采用一个由910个节点构成的集群进行运算,排序时间只用了209秒。

  • 2009年5月,Hadoop更是把1TB数据排序时间缩短到62秒。

  • Hadoop从此名声大震,迅速发展成为大数据时代最具影响力的开源分布式开发平台,并成为事实上的大数据处理标准。

2.Hadoop特性与应用现状

1)Hadoop特性

Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的。它具有以下几个方面的特性:

分布式平台; Hadoop与Map-reduce详解; Hadoop特性&应用; Hadoop特性; 2-2

2)Hadoop应用现状

Hadoop凭借其突出的优势,已经在各个领域得到了广泛的应用,而互联网领域是其应用的主阵地。

分布式平台; Hadoop与Map-reduce详解; Hadoop特性&应用; Hadoop应用现状; 2-3

  • 雅虎2007年在Sunnyvale总部建立了M45——一个包含了4000个处理器和1.5PB容量的Hadoop集群系统。

  • Facebook作为全球知名的社交网站,Hadoop是非常理想的选择,Facebook主要将Hadoop平台用于日志处理、推荐系统和数据仓库等方面。

  • 国内主流的互联网及信息公司,包括百度、淘宝、网易、字节、美团点评、华为、中国移动等都采用了Hadoop。

分布式平台; Hadoop与Map-reduce详解; Hadoop特性&应用; Hadoop应用现状; 2-4

3)Hadoop版本演进

Apache Hadoop版本分为两代:第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop 2.0。

分布式平台; Hadoop与Map-reduce详解; Hadoop特性&应用; Hadoop版本演进; 2-5

第一代Hadoop包含三个大版本,分别是0.20.x、0.21.x、0.22.x。

  • 0.20.x最后演化成1.0.x,变成了稳定版。
  • 0.21.x和0.22.x则增加了NameNode HA等新的重大特性。

第二代Hadoop包含两个大版本,分别是0.23.x、2.x。

  • 它们完全不同于Hadoop 1.0,是一套全新的架构,均包含HDFS Federation和YARN两个系统。
  • 相比于0.23.x,2.x增加了NameNode HA和Wire-compatibility两个重大特性。

3.Hadoop生态项目架构

分布式平台; Hadoop与Map-reduce详解; Hadoop生态项目架构; 组件与功能; 2-6

如上图罗列了Hadoop生态的项目架构,包含以下组件,层级结构与核心功能见图。

组件功能
HDFS分布式文件系统
MapReduce分布式并行编程模型
YARN资源管理和调度器
Tez运行在YARN之上的下一代Hadoop查询处理框架
HiveHadoop上的数据仓库
HBaseHadoop上的非关系型的分布式数据库
Pig一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig Latin
Sqoop用于在Hadoop与传统数据库之间进行数据传递
OozieHadoop上的工作流管理系统
Zookeeper提供分布式协调一致性服务
Storm流计算框架
Flume一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统
AmbariHadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控
Kafka一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据
Spark类似于Hadoop MapReduce的通用并行框架

4.HDFS介绍

1)分布式文件系统

分布式文件系统,把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群。与之前使用多个处理器和专用高级硬件的并行化处理装置不同的是,目前的分布式文件系统所采用的计算机集群,都是由普通硬件构成的,这就大大降低了硬件上的开销。

分布式平台; Hadoop与Map-reduce详解; HDFS介绍; 分布式文件系统; 2-7

2)HDFS的优点与局限

分布式平台; Hadoop与Map-reduce详解; HDFS介绍; HDFS的优点与局限; 2-8

总体而言,HDFS要实现以下目标:

  • 兼容廉价的硬件设备
  • 流数据读写
  • 大数据集
  • 简单的文件模型
  • 强大的跨平台兼容性

HDFS特殊的设计,在实现上述优良特性的同时,也使得自身具有一些应用局限性,主要包括以下几个方面:

  • 不适合低延迟数据访问
  • 无法高效存储大量小文件
  • 不支持多用户写入及任意修改文件

3)HDFS块及其优势

块(Block):HDFS默认一个块64MB,一个文件被分成多个块,以块作为存储单位。块的大小远远大于普通文件系统,可以最小化寻址开销。

分布式平台; Hadoop与Map-reduce详解; HDFS介绍; HDFS块及其优势; 2-9

HDFS采用抽象的块概念可以带来以下几个明显的好处:

分布式平台; Hadoop与Map-reduce详解; HDFS介绍; HDFS块的优势; 2-10

  • 支持大规模文件存储:文件以块为单位进行存储,一个大规模文件可以被分拆成若干个文件块,不同的文件块可以被分发到不同的节点上,因此,一个文件的大小不会受到单个节点的存储容量的限制,可以远远大于网络中任意节点的存储容量。
  • 简化系统设计:首先,大大简化了存储管理,因为文件块大小是固定的,这样就可以很容易计算出一个节点可以存储多少文件块;其次,方便了元数据的管理,元数据不需要和文件块一起存储,可以由其他系统负责管理元数据。
  • 适合数据备份:每个文件块都可以冗余存储到多个节点上,大大提高了系统的容错性和可用性。

4)HDFS主要组件的功能

分布式平台; Hadoop与Map-reduce详解; HDFS介绍; HDFS主要组件功能; 2-11

HDFS包含Name Node和Data Node,具体的功能和特点对比如上图所示。

Name NodeData Node
存储元数据存储文件内容
元数据保存在内存中文件内容保存在磁盘
保存文件、block、datanode之间的映射关系维护了 block id 到 datanode 本地文件的映射关系

5.Map-Reduce分布式数据处理

HDFS很好地解决了分布式文件存储的问题,而hadoop利用一套Map-Reduce的计算框架,也解决了大数据处理的难题。下面整理了大数据计算所面对的问题,以及一些解决思路(也是map-reduce的核心思想)。

我们后面的内容会以实操的方式,带大家一起看hadoop的组件与Map-Reduce应用的案例,这里大家先做一个简单了解,具体的应用实操接着看ShowMeAI后续内容哦~

集群计算面对的问题&方案

分布式平台; Hadoop与Map-reduce详解; Map-Reduce分布式数据处理; Map-Reduce集群计算面对的问题及方案; 2-12

问题1:节点故障。如何保持数据的持续性,即在某些节点故障的情形下不影响依旧能够使用数据?在运行时间较长的集群运算中,如何应对节点故障呢?

解决方法:在多节点上冗余地存储数据。分布式文件存储系统提供全局的文件命名空间,冗余度和可获取性。例如:Google的GFS、Hadoop的HDFS。

分布式平台; Hadoop与Map-reduce详解; Map-Reduce分布式数据处理; Map-Reduce集群运算时问题的解决方案; 2-13

问题2:网络带宽瓶颈。

解决方法:数据以“块状”形式在多台机器上存储。每个数据块都会重复地在多台机器上存储,保证数据的持续性和随时可取性。

分布式平台; Hadoop与Map-reduce详解; Map-Reduce分布式数据处理; Map-Reduce集群运算时问题的解决方案; 2-14

问题3:分布式编程非常复杂。需要一个简单的模型能够隐去所有的复杂性。

解决方法:简单的程序模型隐藏所有的复杂度。

分布式平台; Hadoop与Map-reduce详解; Map-Reduce分布式数据处理; Map-Reduce集群运算时问题的解决方案; 2-15

6.参考资料

【大数据技术与处理】推荐阅读

ShowMeAI 系列教程推荐

Hadoop Map/Reduce教程 Hadoop Map/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。一个Map/Reduce作业(job)通常会把输入的数据集切分为若干独立的数据块,由map任务(task)以完全并行的方式处理它们。框架会对map的输出先进行排序, 然后把结果输入给reduce任务。通常作业的输入和输出都会被存储在文件系统中。整个框架负责任务的调度和监控,以及重新执行已经失败的任务。 阅读详情

相关推荐

大数据基石——Hadoop与MapReduce

本文始发于个人公众号:TechFlow 近两年AI成了最火热领域的代名词,各大高校纷纷推出了人工智能专业。但其实,人工智能也好,还是前两年的深度学习或者是机器学习也罢,都离不开底层的数据支持。对于动辄数以TB记级别的数据,显然常规的数据库是满足不了要求的。今天,我们就来看看大数据时代的幕后英雄——Hadoop。 Hadoop这个关键词其实有两重含义,最早它其实指的就是单纯的分布式计算系统。但是随...

TechFlow的博客 723

Hadoop与Mapreduce关系

Mapreduce是一种模式。Hadoop是一种框架。Hadoop是一个实现了mapreduce模式的开源的分布式并行编程框架。     所以,你现在,知道了什么是mapreduce,什么是hadoop,以及这两者之间最简单的联系,而本文的主旨即是,一句话概括:在hadoop的框架上采取mapreduce的模式处理海量数据。下面,咱们可以依次深入学习和了解mapreduce和hadoop这两

luoyanqing119的专栏 1万+

图解大数据技术:从入门到精通系列教程

本篇内容是ShowMeAI组织的「图解大数据处理与开发」系列教程入口,本教程以大数据技术为根基,给大家讲解大数据开发与数据处理分析的相关知识与技能,并配以相关的实战案例帮助大家学习理解。...

ShowMeAI研究中心 1万+

Hadoop与MapReduce。

注:部分内容摘录自百度百科、《Oracle大数据解决方案》     什么是MapReduce?        MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系

zhamujiang 903

MapReduce基本原理(详解!)

目录一、概念理解二、MapReduce计算模型三、Map shuffle(1)Partition(2)Collector(3)Sort(4)Spill(5)Merge四、Reduce shuffle(1)Copy(2)Merge Sort 一、概念理解 MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义: 1)MapReduce是一个基于集群的高性能并行计算平台。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。 2)MapReduce是一

蔡政洁的博客 4万+

分布式计算框架Map/Reduce

一、分布式计算框架MapReduce 1、MapReduce是什么 面向大数据并行处理的计算模型、框架和平台。 2、特点 分布可靠,对数据集的操作分发给集群的多个节点实现可靠性,每个节点周期性返回它完成的任务和最新的状态 封装了实现细节,基于框架API编程,面向讹误展开分布式编码 提供跨语言编程的能力 3、企业应用 各大运营商、中大型互联网公司、金融银行保险类公司等 二、MapReduce运行流程 1、MapReduce的主要功能 数据划分和计算任务调度 系统优化 出错检测和恢复 2、MapReduce的运

qq_46447060的博客 411

图解大数据 | 应用Map-Reduce进行大数据统计@实操案例

Hadoop使用一套Map-Reduce的计算框架,解决了大数据处理的难题。本教程ShowMeAI通过几个实例和代码,详细给大家讲解Hadoop使用Map-Reduce进行数据统计的方法。

ShowMeAI研究中心 1万+

华为P30/pro (ELE-AL00) 鸿蒙4.2降级 EMUI 9

分享

m0_52356707的博客 1万+

MapReduce--Shuffle图解详解

0、前言 早期的大数据主要应用在统计分析:分组和排序 数据量非常大,即使我们做分布式,可以处理大数据,但是排序这种无法做到跨机器的整体有序,每台机器处理一部分数据的排序 大量数据需要进行排序 每台机器对一部分数据进行排序 将每台机器排序的结果写入磁盘 通过插入排序这种基于磁盘排序 的算法来实现排序 Shuffle过程必用磁盘:非常慢 能避免不产生shuffle就不产生shuffle 1、功能 分区:决定了Map输出的数据会被哪个Reduce 进行处理 默认规则:按照key的hash值

qq_46893497的博客 2006

Graylog日志系统实战:高效接收与解析交换机日志

本文提供Graylog日志系统的实战部署与配置指南,重点讲解如何高效接收与解析交换机日志。通过Docker快速部署,配置Syslog输入,并指导华为、华三等主流交换机将日志发送至Graylog。文章还介绍了使用提取器解析日志字段、创建数据流进行分类,以及设置报警规则,实现从被动排查到主动预警的运维转变,帮助网络工程师构建集中、智能的日志管理系统。

weixin_29284885的博客 541

KTransformers安装笔记 利用docker安装KTransformers

KTransformers安装笔记 利用docker安装KTransformers

guoqingru0311的博客 1562

【Big Data - Hadoop - MapReduce】初学Hadoop之图解MapReduce与WordCount示例分析

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算。 HDFS是Google File System(GFS)的开源实现。 MapReduce是Google MapReduce的开源实现。 HDFS和MapReduce实现是完全分离的,并不是没有HDFS就不能MapReduce运算。 本文主要参考了以...

weixin_34409822的博客 287

HFSS螺旋线圈的优化设计与高效仿真实践

本文详细介绍了HFSS螺旋线圈的优化设计与高效仿真实践,涵盖核心参数设置、参数化建模、仿真加速技巧及结果分析。通过HFSS软件实现螺旋线圈的高效仿真,特别适用于无线充电和RFID系统设计,提升设计效率与性能验证准确性。

weixin_30235225的博客 445

Hadoop分布式集群原理及实践

Hadoop是一个开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。由Apache Software Foundation维护,它是基于Java编程语言的,并且支持运行在通用硬件上。Hadoop的设计允许从单个服务器扩展到成千上万台机器,每台机器都提供本地计算和存储。Hadoop框架透明地为应用提供高可靠性和数据传输容错能力。

qq_46686345的博客 1284

B站DRM视频解密流程实战解析:从密钥获取到播放全流程

本文详细解析了B站DRM视频的解密全流程,从识别加密视频、捕获关键网络请求(如playurl接口的widevine_pssh数据),到逆向分析DRM SDK的JavaScript执行逻辑,最终手动模拟EME流程获取解密密钥,并使用mp4decrypt和ffmpeg工具完成视频文件的解密与合并。文章为开发者提供了从密钥获取到播放的完整实战指南。

weixin_29290379的博客 844

化工设备应力分析软件:STAAD.Pro二次开发_(24).非线性分析技术

在STAAD.Pro 中,可以通过命令。

kkchenjj的博客 662

【Hadoop】Hadoop核心基础——MapReduce 编程模型与数据流(手把手拆解分布式计算的核心逻辑)

Map 函数:负责 “拆分与标记”—— 把输入数据拆分成最小处理单元(如单词),并为每个单元标记 “计数 1”;Reduce 函数:负责 “聚合与计算”—— 把相同标记(如相同单词)的计数结果汇总,得到最终统计值;无需关心分布式逻辑:代码中没有任何 “节点通信”“任务分配” 的逻辑 —— 这些都由 Hadoop 框架自动完成。

lxyydh88888888的博客 987

MediaPipe 从入门到精通:安装、配置与多场景应用实战手册

人体姿态检测是 MediaPipe 的核心功能之一,它能够从图像或视频中识别人体姿态,并输出关键点的坐标。这些关键点覆盖了身体的主要部位,例如肩膀、肘部、髋部、膝盖等,总计 33 个点。每个关键点包含 x、y、z 坐标(归一化到 0-1 范围)以及可见性评分,可用于分析动作、姿势或开发健身、游戏等应用。手部关键点检测是 MediaPipe 的另一大亮点,它可以识别图像或视频中的手部,并输出 21 个关键点的坐标。这些关键点覆盖手掌和手指的各个部位,适用于手势识别、虚拟现实或交互式应用。

m0_71589036的博客 389

图解大数据 | 基于Spark RDD的大数据处理分析

RDD(弹性分布式数据集合)是Spark的基本数据结构,Spark中的所有数据都是通过RDD的形式进行组织。本文讲解RDD的属性、创建方式、广播与累加器等重要知识点,并图解RDD高频算子。

ShowMeAI研究中心 1万+

【图像超分】论文精读:SRConvNet: A Transformer-Style ConvNet for Lightweight Image Super-Resolution

本文提出了一种轻量级图像超分辨率重建方法SRConvNet,结合了卷积神经网络和Transformer的优势。针对传统Transformer计算复杂度高的问题,设计了傅立叶调制注意力(FMA)替代自注意力机制,通过区域频率空间调制实现高效的全局依赖建模;同时引入动态混合层(DML),采用混合尺度动态卷积结合通道拆分机制增强局部特征提取。实验表明,SRConvNet在计算效率和参数数量上显著优于现有轻量级超分方法,同时保持了优异的重建性能。该方法为移动端部署提供了有效的解决方案,在精度与复杂度间取得了良好平衡

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 808

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

大数据基础篇--Common Join 和Map Join的机制

mapjoin

qq_43709558的博客 1069

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

mapreduce详解

mapreduce详解

m0_63266054的博客 821

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

5分钟掌握大数据:MapReduce

5分钟掌握大数据:MapReduce 在使用java编写MaReduce程序之前,先让我们解决一个基本问题——MapReduce是什么?它的运行机制是怎么样的? 能够打开这篇文章的读者,应该或多或少都有一些技术基础。但是为了使得下面的解说更加清楚明白,这里还是要简单描述一下。 MapReduce是什么 MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Ma...

yayaqwl的博客 269

Hadoop进阶原理(HDFS、MR、YARN的原理)

本文主要介绍Hadoop中HDFS、MR、YARN的原理。

m0_63845988的博客 2014
上一篇: 图解大数据技术:从入门到精通系列教程
下一篇: 图解数据分析(1) | 数据分析介绍(数据科学家入门·完结)
ShowMeAI
博客等级 码龄5年 6514粉丝 672原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShowMeAI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值