`

大数据学习笔记13:MapReduce处理流程一

 
阅读更多

MapReduce处理流程一

 

 

我试图着搞明白MapReduce的处理流程--或者叫运行流程。

 

1、先从单机的角度 粗粒度的看


 

数据处理程序 读入数据,进而进行数据处理,处理完成后写数据。

整体上看很简单,就三步:从源头读入数据、处理数据、写数据到目的地。

 

 

2、更细化的图

 

 

从1中的图我们大体能明白总体的流程,这是最简单模型。实际运行中并不是单机运行的,而是在分布式的多台机器上并行执行的。

     2.1 多个机器并行执行:  问题就来了,分布式环境下多个机器如何访问共享文件。当然我们已经知道

                                              Hadoop下是使用 HDFS处理的。所以我们看到 2 中的图的左边画出了 HDFS

                                              的一个框。多个机器读取的源数据都是存在于 HDFS上的。

 

      2.2 并行执行之切分 :并行执行 肯定要切分任务--- 把源数据切分为多个小块--也就是图中画的 data split

                                          这个切分是由 InputFormat完成的。

 

      2.3 并行执行的多个map: 这里的多个map处理--是多个进程。

                                                 Hadoop采用都是多进程模型。spark采用的是多线程模型。

                                                 多进程更容易控制资源占用,而多线程不太容易控制资源占用。

 

      2.4 shuffle & sort  : 多map产生的多个 中间结果进行进一步的处理。shuffle 意思为 洗牌---很形象。

 

      2.5 进行reduce处理:对map的结果进行汇总操作。根据key 使用哈希算法 ,把不同的key的数据发送给

                                         不同的reduce进行处理。

 

      2.6 上面图中的一个问题: 应当是一个 split 对应一个  map 的。

 

 

 

3、显示更多细节

 

 
                3.1 每个map处理时 都有自己的 内存缓冲区,默认大小是100M ,就是上图画的buffer in memory

                       部分。buffer--缓冲,缓冲一般是临时存储的,快要满时是要写到磁盘上的。占用的80%时会把

                       这占用的80%的数据写入磁盘。

                 

                3.2   map一直运行 就会一直往 buffer写放数据,buffer就会写到磁盘多个小文件。就是上面buffer

                         后面 画出来的 一摞三个框的 东西。我们看 每个框好像还有自己的结构。一个框中被竖线分

                         割成了多个 “区”。这里的区就是partition。相对于数钱的例子的话,这里的 一个partition就一

                         一沓相同面值的钱--10块的一沓 50 的一沓  100 的一沓,这三沓摞一块就是图中的一个小文

                         件。  为什么他们会整齐的分沓摞起来呢?--- 原来 buffer在向磁盘写文件时 并不是简单的原

                         样的把内容的中数据写入磁盘文件,而是写的时候有一个排序的过程。正式这个排序的处理

                          才是10块的汇聚到一沓里。

 

                 3.3  产生的多个 小文件并不会直接发送给 reduce处理,而是要再合并处理。同样这次合并也不是

                         原样的append。而是有一个归并排序的处理。把 各个一小沓10块的  汇聚成一大沓。

                         然后合并后产生的文件就是一个大的有序的文件。

                 

                  3.4  多个map最终会产生多个merge后的文件。然后从 这多个merge后的文件中 取出相同 一沓10

                         块的发送( 实际上就是copy到reduce节点机器上)给 处理10块的钱的 reduce。

 

                

 

  • 大小: 35.8 KB
  • 大小: 107.3 KB
  • 大小: 80.6 KB
  • 大小: 366.4 KB
分享到:
评论

相关推荐

    大数据学习笔记

    大数据学习笔记 本资源摘要信息涵盖了大数据领域中的多个方面,包括Hadoop、HBase、Sqoop、Spark和Hive等技术栈。下面将对这些技术栈进行详细的解释和分析。 一、HDFS架构详尽分析 HDFS(Hadoop Distributed File...

    大数据学习笔记.docx

    本笔记将深入探讨大数据的基本概念,包括Hadoop、Hive、离线计算、实时计算、数据库、数据仓库、维度建模以及大规模并行处理MPP,还将介绍阿里云的一些大数据产品,如MaxCompute、DataWorks、数据集成、机器学习PAI...

    大数据学习笔记汇总指南

    这份“大数据学习笔记汇总指南”涵盖了大数据技术栈中的关键组件,包括Hadoop、Hive、Spark、Storm、Flink以及HBase。让我们逐一深入探讨这些技术及其在大数据生态系统中的作用。 一、Hadoop Hadoop是Apache基金会...

    大数据学习笔记,学习路线,技术案例整理。.zip

    本资料包“大数据学习笔记,学习路线,技术案例整理”是一个全面的大数据学习资源,旨在帮助初学者和进阶者系统地掌握大数据的核心技术和应用实践。 首先,我们来了解一下大数据的关键概念和技术栈。大数据通常有四...

    大数据学习笔记.pdf

    第一部分 Spark学习 ....................................................................................................................... 6 第1章 Spark介绍 ..............................................

    大数据面试录音02.zip

    1. **大数据基础**:面试可能涉及到Hadoop、Spark等大数据处理框架的基础知识,如HDFS(Hadoop分布式文件系统)的工作原理,MapReduce编程模型,以及Spark的RDD(弹性分布式数据集)和DAG(有向无环图)执行模型。...

    HCIA-Big Data考试题库.zip

    1. **大数据概念**:大数据是指数据量巨大、类型繁多、增长快速且处理难度高的数据集。它包括结构化、半结构化和非结构化数据。 2. **大数据特征**:通常用4V来描述大数据,即Volume(大量)、Velocity(高速)、...

    hadoop学习笔记.rar

    六、hadoop学习笔记之一:初识Hadoop 这篇笔记介绍了Hadoop的基本概念,包括Hadoop的诞生背景、核心组件以及Hadoop的优势。初学者可以从这里了解Hadoop的基本架构和工作原理,为后续的学习打下基础。 总结,Hadoop...

    大数据学习资料全排序二次排序

    "大数据学习资料全排序二次排序"这个主题,显然关注的是如何有效地对大规模数据进行排序,尤其是涉及到二次排序的概念。二次排序通常是指在第一次排序的基础上,根据另一个或多个字段进行第二次排序,以满足更复杂的...

    Java大数据课程核心笔记

    总的来说,Java大数据课程核心笔记提供了一个全面的平台,帮助你掌握Java的基础知识,并将其应用于大数据的处理和分析。通过深入学习这些内容,你将能够开发出能够高效处理海量数据的应用程序,为你的职业生涯打开新...

    大数据平台,hadoop集群学习笔记

    在大数据领域,Hadoop是一个至关重要的工具,它为海量数据的存储和处理提供了高效、可靠的解决方案。本笔记将深入探讨Hadoop集群及其核心组件,帮助读者理解大数据平台的基础与精髓。 第一章介绍了大数据的基本概念...

    大数据博客、笔试题、教程、项目、面经的整理.zip

    这个压缩文件可能是一个全面的大数据学习和求职准备资源集合。 在大数据领域,有以下几个关键知识点: 1. **大数据概念**:大数据是指数据量巨大、增长快速、类型多样、价值密度低的数据集合。它通常涉及到四个V,...

    大数据课程课件PDF...

    五、大数据学习笔记 学习大数据,你需要掌握编程语言如Java或Python,理解分布式计算原理,熟悉Hadoop和Spark等工具,以及数据分析和机器学习的基础知识。同时,实战项目经验也是提升技能的关键,可以参与开源项目...

    大数据笔记、hadoop、hive、flink等

    Hive将SQL查询转换为一系列MapReduce任务,简化了大数据分析的复杂性,使非程序员也能方便地处理大数据。Hive还支持数据的离线处理,适合批量分析,但不适合实时或低延迟的查询需求。 Flink则是另一种流处理框架,...

    大数据基础

    通过学习,学生应能掌握大数据处理的关键技术和方法,理解大数据分析的流程,并具备初步的大数据项目实施能力。 大数据是指那些传统数据处理工具无法有效管理的海量、高增长速度和多样性的数据资源。它涉及到多个...

    超全大数据面试宝典-大数据面试有这套就够了.pdf

    找工作流程是大数据面试宝典的开篇,包括学习技能、编写简历、投递简历、预约面试时间、面试、等待回复、拿到offer、入职以及准备必备资料和签订合同九个步骤。这个流程帮助求职者了解从开始求职到成功入职整个过程...

    尚硅谷大数据技术之Hadoop

    【尚硅谷大数据技术之Hadoop】是一门深入探讨大数据处理技术的课程,主要聚焦于开源框架Hadoop。Hadoop是Apache软件基金会开发的一个分布式计算项目,它为大规模数据集(大于1TB)提供了高容错性的分布式存储和计算...

    最新201808达内Java大数据web阶段商城Easymall项目学习笔记和代码

    总之,"最新201808达内Java大数据web阶段商城Easymall项目学习笔记和代码"是一个综合性的学习资源,涵盖了Java Web开发和大数据处理的多个方面,适合希望提升技能或准备从事相关领域工作的学习者深入研究。...

    HADOOP学习笔记

    3. MapReduce:处理数据的计算框架。 4. Oozie:工作流调度系统,用于管理Hadoop作业和其他计算框架(如Pig、Hive等)的作业流程。 5. ZooKeeper:分布式协调服务,确保集群中的节点间通信和一致性。 6. Hive:...

Global site tag (gtag.js) - Google Analytics