hadoop中MapReduce和yarn的基本原理讲解

6 篇文章 2 订阅
订阅专栏

目录

1 MapReduce

1.1 执行流程

1.2 工作原理

Map任务处理

Reduce任务处理

MR的Shuffle过程

1.3  运行流程分析

2 yarn

2.1简介

2.2 组成

1. ResourceManager

2. NodeManager

3.ApplicationMaster(AM)

4. Container

2.3 工作原理


1 MapReduce

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

记住这2点:

      1、MapReduce是一种分布式计算模型,是Google提出的,主要用于搜索领域,解决海量数据的计算问题。

      2、MR有两个阶段组成:Map和Reduce,用户只需实现map()和reduce()两个函数,即可实现分布式计算。

1.1 执行流程

由图我们可以看到, MapReduce存在以下4个独立的实体。
1. JobClient:运行于client node,负责将MapReduce程序打成Jar包存储到HDFS,并把Jar包的路径提交到Jobtracker,由Jobtracker进行任务的分配和监控。
2. JobTracker:运行于name node,负责接收JobClient提交的Job,调度Job的每一个子task运行于TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。
3. TaskTracker:运行于data node,负责主动与JobTracker通信,接收作业,并直接执行每一个任务。
4. HDFS:用来与其它实体间共享作业文件。

 

各实体间通过以下过程完成一次MapReduce作业。

  1. JobClient通过RPC协议向JobTracker请求一个新应用的ID,用于MapReduce作业的ID
  2. JobTracker检查作业的输出说明。例如,如果没有指定输出目录或目录已存在,作业就不提交,错误抛回给JobClient,否则,返回新的作业ID给JobClient
  3. JobClient将作业所需的资源(包括作业JAR文件、配置文件和计算所得得输入分片)复制到以作业ID命名的HDFS文件夹中
  4. JobClient通过submitApplication()提交作业
  5. JobTracker收到调用它的submitApplication()消息后,进行任务初始化
  6. JobTracker读取HDFS上的要处理的文件,开始计算输入分片,每一个分片对应一个TaskTracker
  7. askTracker通过心跳机制领取任务(任务的描述信息)
  8. TaskTracker读取HDFS上的作业资源(JAR包、配置文件等)
  9. TaskTracker启动一个java child子进程,用来执行具体的任务(MapperTask或ReducerTask)

  10. TaskTracker将Reduce结果写入到HDFS当中

1.2 工作原理

Map任务处理

  1. 读取HDFS中的文件。每一行解析成一个<k,v>。每一个键值对调用一次map函数
  2. 重写map(),对第一步产生的<k,v>进行处理,转换为新的<k,v>输出
  3. 对输出的key、value进行分区
  4. 对不同分区的数据,按照key进行排序、分组。相同key的value放到一个集合中
  5. (可选) 对分组后的数据进行归约

Reduce任务处理

  1. 多个map任务的输出,按照不同的分区,通过网络复制到不同的reduce节点上
  2. 对多个map的输出进行合并、排序。
  3. 重写reduce函数实现自己的逻辑,对输入的key、value处理,转换成新的key、value输出
  4. 把reduce的输出保存到文件中

MR的Shuffle过程

MapReduce计算模型主要由三个阶段构成:Map、Shuffle、Reduce。Map是映射,负责数据的过滤分类,将原始数据转化为键值对;Reduce是合并,将具有相同key值的value进行处理后再输出新的键值对作为最终结果;为了让Reduce可以并行处理Map的结果,必须对Map的输出进行一定的排序与分割,然后再交给对应的Reduce,这个过程就是Shuffle。Shuffle过程包含Map Shuffle和Reduce Shuffle。

1)Map Shuffle

在Map端的shuffle过程就是对Map的结果进行分区、排序、分割,然后将属于同一个分区的输出合并在一起并写在磁盘上,最终得到一个分区有序的文件。分区有序的含义是Map输出的键值对按分区进行排列,具有相同partition值的键值对存储在一起,每个分区里面的键值对又按key值进行升序排序(默认),大致流程如下:

2)Reduce Shuffle

Reduce任务通过HTTP向各个Map任务拖取它所需要的数据。Map任务成功完成后,会通知父TaskTracker状态已经更新,TaskTracker进而通知JobTracker(这些通知在心跳机制中进行)。所以,对于指定作业来说,JobTracker能记录Map输出和TaskTracker的映射关系。Reduce会定期向JobTracker获取Map的输出位置,一旦拿到输出位置,Reduce任务就会从此输出对应的TaskTracker上复制输出到本地,而不会等到所有的Map任务结束。

Copy过来的数据会先放入内存缓冲区中,如果内存缓冲区中能放得下这次数据的话就直接把数据写到内存中,即内存到内存merge。Reduce要向每个Map去拖取数据,在内存中每个Map对应一块数据,当内存缓存区中存储的Map数据占用空间达到一定程度的时候,开始启动内存中merge,把内存中的数据merge输出到磁盘上一个文件中,即内存到磁盘merge。在将buffer中多个map输出合并写入磁盘之前,如果设置了Combiner,则会化简压缩合并的map输出。Reduce的内存缓冲区可通过mapred.job.shuffle.input.buffer.percent配置,默认是JVM的heap size的70%。内存到磁盘merge的启动门限可以通过mapred.job.shuffle.merge.percent配置,默认是66%。

当属于该reducer的map输出全部拷贝完成,则会在reducer上生成多个文件(如果拖取的所有map数据总量都没有内存缓冲区,则数据就只存在于内存中),这时开始执行合并操作,即磁盘到磁盘merge,Map的输出数据已经是有序的,Merge进行一次合并排序,所谓Reduce端的sort过程就是这个合并的过程。一般Reduce是一边copy一边sort,即copy和sort两个阶段是重叠而不是完全分开的。最终Reduce shuffle过程会输出一个整体有序的数据块。

1.3  运行流程分析

流程分析:

Map端:

1.每个输入分片会让一个map任务来处理,默认情况下,以HDFS的一个块的大小(默认为64M)为一个分片,当然我们也可以设置块的大小。map输出的结果会暂且放在一个环形内存缓冲区中(该缓冲区的大小默认为100M,由io.sort.mb属性控制),当该缓冲区快要溢出时(默认为缓冲区大小的80%,由io.sort.spill.percent属性控制),会在本地文件系统中创建一个溢出文件,将该缓冲区中的数据写入这个文件。

2.在写入磁盘之前,线程首先根据reduce任务的数目将数据划分为相同数目的分区,也就是一个reduce任务对应一个分区的数据。这样做是为了避免有些reduce任务分配到大量数据,而有些reduce任务却分到很少数据,甚至没有分到数据的尴尬局面。其实分区就是对数据进行hash的过程。然后对每个分区中的数据进行排序,如果此时设置了Combiner,将排序后的结果进行Combia操作,这样做的目的是让尽可能少的数据写入到磁盘。

3.当map任务输出最后一个记录时,可能会有很多的溢出文件,这时需要将这些文件合并。合并的过程中会不断地进行排序和combia操作,目的有两个:1.尽量减少每次写入磁盘的数据量;2.尽量减少下一复制阶段网络传输的数据量。最后合并成了一个已分区且已排序的文件。为了减少网络传输的数据量,这里可以将数据压缩,只要将mapred.compress.map.out设置为true就可以了。

4.将分区中的数据拷贝给相对应的reduce任务。有人可能会问:分区中的数据怎么知道它对应的reduce是哪个呢?其实map任务一直和其父TaskTracker保持联系,而TaskTracker又一直和JobTracker保持心跳。所以JobTracker中保存了整个集群中的宏观信息。只要reduce任务向JobTracker获取对应的map输出位置就ok了哦。

到这里,map端就分析完了。那到底什么是Shuffle呢?Shuffle的中文意思是“洗牌”,如果我们这样看:一个map产生的数据,结果通过hash过程分区却分配给了不同的reduce任务,是不是一个对数据洗牌的过程呢?呵呵。

Reduce端:

1.Reduce会接收到不同map任务传来的数据,并且每个map传来的数据都是有序的。如果reduce端接受的数据量相当小,则直接存储在内存中(缓冲区大小由mapred.job.shuffle.input.buffer.percent属性控制,表示用作此用途的堆空间的百分比),如果数据量超过了该缓冲区大小的一定比例(由mapred.job.shuffle.merge.percent决定),则对数据合并后溢写到磁盘中。

2.随着溢写文件的增多,后台线程会将它们合并成一个更大的有序的文件,这样做是为了给后面的合并节省时间。其实不管在map端还是reduce端,MapReduce都是反复地执行排序,合并操作,现在终于明白了有些人为什么会说:排序是hadoop的灵魂。

3.合并的过程中会产生许多的中间文件(写入磁盘了),但MapReduce会让写入磁盘的数据尽可能地少,并且最后一次合并的结果并没有写入磁盘,而是直接输入到reduce函数

2 yarn

2.1简介

Yarn是Hadoop集群的资源管理系统。Hadoop2.0对MapReduce框架做了彻底的设计重构,我们称Hadoop2.0中的MapReduce为MRv2或者Yarn。 它的目标是将这两部分功能分开,也就是分别用两个进程来管理这两个任务:

 Yarn/MRv2最基本的想法是将原JobTracker主要的资源管理和job调度/监视功能分开作为两个单独的守护进程。有一个全局的ResourceManager(RM)和每个Application有一个ApplicationMaster(AM),Application相当于map-reduce job或者DAG jobs。ResourceManager和NodeManager(NM)组成了基本的数据计算框架。ResourceManager协调集群的资源利用,任何client或者运行着的applicatitonMaster想要运行job或者task都得向RM申请一定的资源。ApplicatonMaster是一个框架特殊的库,对于MapReduce框架而言有它自己的AM实现,用户也可以实现自己的AM,在运行的时候,AM会与NM一起来启动和监视tasks。

核心思想:将MP1中JobTracker的资源管理和作业调度两个功能分开,分别由ResourceManager和ApplicationMaster进程来实现。

  1)ResourceManager:负责整个集群的资源管理和调度。

  2)ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等。

 YARN的出现,使得多个计算框架可以运行在一个集群当中。

  1)每个应用程序对应一个ApplicationMaster。

  2)目前可以支持多种计算框架运行在YARN上面比如MapReduce、Storm、Spark、Flink等。

2.2 组成

从 YARN 的架构图来看,它主要由ResourceManager、NodeManager、ApplicationMaster和Container等以下几个组件构成。

ResourceManager:一个Cluster只有一个,负责资源调度、资源分配等工作。

NodeManager:运行在DataNode节点,负责启动Application和对资源的管理。

JobHistoryServer:负责查询job运行进度及元数据管理。

Containers:Container通过ResourceManager分配。包括容器的CPU、内存等资源。

Application Master:ResourceManager将任务给Application Master,然后Application Master再将任务给NodeManager。每个Application只有一个Application Master,运行在Node Manager节点,Application Master是由ResourceManager指派的。

job:是需要执行的一个工作单元:它包括输入数据、MapReduce程序和配置信息。job也可以叫作Application。

task:一个具体做Mapper或Reducer的独立的工作单元。task运行在NodeManager的Container中。

Client:一个提交给ResourceManager的一个Application程序。

1. ResourceManager

RM 是一个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件构成:

调度器(Scheduler)和应用程序管理器(Applications Manager,ASM)。

YARN 分层结构的本质是 ResourceManager。这个实体控制整个集群并管理应用程序向基础计算资源的分配。ResourceManager 将各个资源部分(计算、内存、带宽等)精心安排

给基础 NodeManager(YARN 的每节点代理)。ResourceManager 还与 ApplicationMaster 一起分配资源,与 NodeManager 一起启动和监视它们的基础应用程序。在此上下文中,ApplicationMaster 承担了以前的 TaskTracker 的一些角色, ResourceManager 承担了 JobTracker 的角色。

(1)调度器

调度器根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用程序。该调度器是一个“纯调度器”,它不再从事任何与具体应用程序相关的工作。

(2)应用程序管理器

应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重新启动它等。

2. NodeManager

NodeManager管理一个YARN集群中的每个节点。NodeManager提供针对集群中每个节点的服务,从监督对一个容器的终生管理到监视资源和跟踪节点健康。MRv1通过插槽管理Map和Reduce任务的执行,而NodeManager 管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。YARN继续使用HDFS层。它的主要 NameNode用于元数据服务,而DataNode用于分散在一个集群中的复制存储服务。

  1)单个节点上的资源管理;

  2)处理来自ResourceManager上的命令;

  3)处理来自ApplicationMaster上的命令。

3.ApplicationMaster(AM)

 ApplicationMaster管理一个在YARN内运行的应用程序的每个实例。ApplicationMaster 负责协调来自 ResourceManager 的资源,并通过 NodeManager 监视容器的执行和资源使用(CPU、内存等的资源分配)。请注意,尽管目前的资源更加传统(CPU 核心、内存),但未来会带来基于手头任务的新资源类型(比如图形处理单元或专用处理设备)。从 YARN 角度讲,ApplicationMaster 是用户代码,因此存在潜在的安全问题。YARN 假设 ApplicationMaster 存在错误或者甚至是恶意的,因此将它们当作无特权的代码对待。

  1)负责数据的切分;

  2)为应用程序申请资源并分配给内部的任务;

  3)任务的监控与容错。

4. Container

      对任务运行环境进行抽象,封装CPU、内存等多维度的资源以及环境变量、启动命令等任务运行相关的信息。比如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是用Container表示的。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。

  要使用一个YARN集群,首先需要来自包含一个应用程序的客户的请求。ResourceManager 协商一个容器的必要资源,启动一个ApplicationMaster 来表示已提交的应用程序。通过使用一个资源请求协议,ApplicationMaster协商每个节点上供应用程序使用的资源容器。执行应用程序时,ApplicationMaster 监视容器直到完成。当应用程序完成时,ApplicationMaster 从 ResourceManager 注销其容器,执行周期就完成了。

2.3 工作原理

 

客户端程序向ResourceManager提交应用并请求一个ApplicationMaster实例

ResourceManager找到可以运行一个Container的NodeManager,并在这个Container中启动ApplicationMaster实例

ApplicationMaster向ResourceManager进行注册,注册之后客户端就可以查询ResourceManager获得自己ApplicationMaster的详细信息,以后就可以和自己的ApplicationMaster直接交互了

在平常的操作过程中,ApplicationMaster根据resource-request协议向ResourceManager发送resource-request请求

当Container被成功分配之后,ApplicationMaster通过向NodeManager发送container-launch-specification信息来启动Container, container-launch-specification信息包含了能够让Container和ApplicationMaster交流所需要的资料

应用程序的代码在启动的Container中运行,并把运行的进度、状态等信息通过application-specific协议发送给ApplicationMaster

YARN工作原理简述

 

Client提交作业到 YARN 上;

Resource Manager选择一个Node Manager,启动一个Container并运行Application Master实例;

Application Master根据实际需要向Resource Manager请求更多的Container资源(如果作业很小, 应用管理器会选择在其自己的 JVM 中运行任务);

Application Master通过获取到的Container资源执行分布式计算。

YARN工作原理详述

1. 作业提交

client 调用 job.waitForCompletion 方法,向整个集群提交 MapReduce 作业 (第 1 步) 。新的作业 ID(应用 ID) 由资源管理器分配 (第 2 步)。作业的 client 核实作业的输出, 计算输入的 split, 将作业的资源 (包括 Jar 包,配置文件, split 信息) 拷贝给 HDFS(第 3 步)。最后, 通过调用资源管理器的 submitApplication() 来提交作业 (第 4 步)。

2. 作业初始化

当资源管理器收到 submitApplciation() 的请求时, 就将该请求发给调度器(scheduler), 调度器分配 container, 然后资源管理器在该 container 内启动应用管理器进程, 由节点管理器监控 (第 5 步)。MapReduce 作业的应用管理器是一个主类为 MRAppMaster 的 Java 应用,其通过创造一些 bookkeeping 对象来监控作业的进度, 得到任务的进度和完成报告 (第 6 步)。然后其通过分布式文件系统得到由客户端计算好的输入 split(第 7 步),然后为每个输入 split 创建一个 map 任务, 根据 mapreduce.job.reduces 创建 reduce 任务对象。

3. 任务分配

如果作业很小, 应用管理器会选择在其自己的 JVM 中运行任务。如果不是小作业, 那么应用管理器向资源管理器请求 container 来运行所有的 map 和 reduce 任务 (第 8 步)。这些请求是通过心跳来传输的, 包括每个 map 任务的数据位置,比如存放输入 split 的主机名和机架 (rack),调度器利用这些信息来调度任务,尽量将任务分配给存储数据的节点, 或者分配给和存放输入 split 的节点相同机架的节点。

4. 任务运行

当一个任务由资源管理器的调度器分配给一个 container 后,应用管理器通过联系节点管理器来启动 container(第 9 步)。任务由一个主类为 YarnChild 的 Java 应用执行, 在运行任务之前首先本地化任务需要的资源,比如作业配置,JAR 文件, 以及分布式缓存的所有文件 (第 10 步。最后, 运行 map 或 reduce 任务 (第 11 步)。YarnChild 运行在一个专用的 JVM 中, 但是 YARN 不支持 JVM 重用。

5. 进度和状态更新

YARN 中的任务将其进度和状态 (包括 counter) 返回给应用管理器, 客户端每秒 (通 mapreduce.client.progressmonitor.pollinterval 设置) 向应用管理器请求进度更新, 展示给用户。

6. 作业完成

除了向应用管理器请求作业进度外, 客户端每 5 分钟都会通过调用 waitForCompletion() 来检查作业是否完成,时间间隔可以通过 mapreduce.client.completion.pollinterval 来设置。作业完成之后, 应用管理器和 container 会清理工作状态, OutputCommiter 的作业清理方法也会被调用。作业的信息会被作业历史服务器存储以备之后用户核查。

 

 

大数据简介&hadoop简介和伪分布式、完全分布...
黑马程序员广州中心的专栏
12-02 584
二:大数据简介 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。 数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。 数据的分类 从结构上可以分为 - 结构化数据:如:二维表 - 半结构化数据:如:xml、html、css - 非结构数据:如:图片、音频、视频等 数据的来源 企业自己...
05.hadoop上课笔记之hadoop5mapreduceyarn
05-31
05.hadoop上课笔记之hadoop5mapreduceyarn
guagua:Hadoop MapReduceHadoop YARN的迭代计算框架
05-25
瓜瓜瓜 Hadoop MapReduceHadoop YARN上的迭代计算框架。 消息 Guagua 0.7.7发布了很多改进。 检查我们的 会议 入门 请访问以获取教程。 什么是瓜瓜瓜? Shifu的子项目Guagua是一个基于Hadoop MapReduceYARN的分布式,可插拔和可扩展的迭代计算框架。 该图显示了瓜瓜岛的迭代计算过程。 典型使用案例瓜瓜分布机器学习基于Hadoop模型训练。 通过使用Guagua ,我们实现了分布式神经网络算法,可以将1TB数据集的模型训练时间从几天减少到几小时。 分布式神经网络算法是基于和瓜瓜。 任何详细信息,请检查我们的示例。 Google群组 如果有问题,错误或其他任何问题,请加入Guagua小组。 版权和许可 PayPal Software Foundation版权所有,2013-2017, Apache许可V2.0 。
MapReduceYarn的概述
最新发布
weixin_48796645的博客
04-03 770
mapreduceyarn概述
HadoopMapReduce框架Yarn详解
03-04
对于业界的大数据存储及分布式处理系统来说,Hadoop是耳熟能详的卓越开源分布式文件存储及处理框架,对于Hadoop框架的介绍在此不再累述,读者可参考Hadoop官方简介。使用和学习过老Hadoop框架(0.20.0及之前版本)的同仁应该很熟悉如下的原MapReduce框架图:图1.HadoopMapReduce架构从上图可以清楚的看出原MapReduce程序的流程及设计思路:可以看得出原来的map-reduce架构是简单明了的,在最初推出的几年,也得到了众多的成功案例,获得业界广泛的支持和肯定,但随着分布式系统集群的规模和其工作负荷的增长,原框架的问题逐渐浮出水面,主要的问题集如下:从
大数据技术之Hadoop(MapReduce&Yarn).docx
03-03
大数据技术之Hadoop(MapReduce&Yarn).docx详细文档
MapReduce on Yarn运行原理
aju1790的博客
08-15 630
一、概念综述   MapReduce是一种可用于数据处理的编程模型(或计算模型),该模型可以比较简单,但想写出有用的程序却不太容易。MapReduce能将大型数据处理任务分解成很多单个的、可以在服务器集群并行执行的任务,而这些任务的计算结果可以合并在一起计算最终的结果。最重要的是,MapReduce的优势在于易于编程且能在大型集群(上千节点)并行处理大规模数据集,以可靠,容错的方式部...
Hadoop 2.6 MapReduce运行原理详解
weixin_33885676的博客
06-05 539
  市面上的hadoop权威指南一类的都是老版本的书籍了,索性学习并翻译了下最新版的Hadoop:The Definitive Guide, 4th Edition与大家共同学习。   我们通过提交jar包,进行MapReduce处理,那么整个运行过程分为五个环节:   1、向client端提交MapReduce job.   2、随后yarn的ResourceManager进行资源的分配....
2.MapReduceYARN原理
小羽的博客
07-19 143
HDFS: 特征:切块 用途:分治 最终目的:分布式计算 角色:NN--DN(心跳,汇报) 重点关注:读写流程 MapReduce: 计算模型、批量计算 Map和Recude是一种阻塞关系 Map:单条记录加工处理 Reduce:多条记录加工处理 想要实现,就需要计算向数据移动,就需要HDFS暴露自己的位置,这就需要JobTracker和TaskTracker JobTracker: 1. 资源管理 2. 任务调度 TaskTracker: 1. 任务管理 2. TaskTracker和DN是一一
Hadoop YARN 的工作流程简述
weixin_33796205的博客
12-18 192
1、Client 向 YARN 提交应用程序,其包括 ApplicationMaster 程序及启动 ApplicationMaster 命令2、ResourceManager 为该 ApplicationMaster 分配第一个 Container,并与对应的 NodeManager 通信,要求它在这个 Container 启动应用程序的 Applicati...
详解MapReduce&Yarn工作原理及优化建议
u012100548的博客
02-20 1170
目录 前言 基本知识 MapReduce工作流程 任务提交(Yarn) 任务计算(MapReduce) 相关优化 推荐学习 前言 Hadoop的三个核心模块:HDFS、MapReduce(简称MR)和Yarn,其HDFS模块负责数据存储,MapReduce负责数据计算,Yarn负责计算过程的资源调度。在存算分离的架构,三者越来越多的同其他框架搭配使用,如用Spark替代MapReduce作为计算引擎或者k8s替换Yarn作为资源调度工作。虽然已经有了许多替代框架,MapRed
hadoop权威指南(第四章)--yarn运行机制及调度过程知识
认真学代码的shell
03-25 1072
1.yarn运行机制? 下面对上面出现的一些名词进行介绍: ResourceManager:是YARN资源控制框架的心模块,负责集群所有的资源的统一管理和分配。它接收来自NM(NodeManager)的汇报, 建立AM,并将资源派送给AM(ApplicationMaster)。 NodeManager:简称NM,NodeManager是ResourceManager在每台机器的上代理,负责容...
MapReduceYarn上的运行流程
huihuisd的博客
05-12 1029
运行示意图: MapReduce程序是在Yarn运行的,job任务还没提交到集群之前,客户端要先进行切片,默认是按照128M来切片。切片的信息会序列化成一个文件到hdfs上。接下来客户端将任务提交给了yarn集群,想让yarn集群运行Yarn集群又由Resource Manager和Node Manager做成,Resource Manager是管理者,Node Manager是真正要运行任务的节点。yarn接受到了客户端的请求,会要求在某个Node Manager上开辟一个容器,启动APPMa
七、hadoop mapreduce使用yarn集群运行(该文章还需修改)
祁东握力的博客
06-09 362
需要在mapred-site.xml文件配置: <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </confi...
hadoopmapreduce运行yarn上的原理
呵少侠的博客
10-20 930
mapreduce运行yarn上步骤1,client查看job输入输出参数,向resourcemanager发送ResourceRequest列表,每个ResourceRequest描述了一个资源单元的详细需求,请求一个Container 2,resourcemanager检查需求,通过的话返回一个jobid和一个用于提交资源的路径 3, a、 client收到响应后,扫描输入目录,根据bl
Hadoop三大核心组件——HDFS、YARNMapReduce原理解析
热门推荐
笑里笑外~
11-18 1万+
Hadoop 文章目录Hadoop一、 简介二、工作原理1.HDFS原理组成介绍执行流程图2.YARN原理组成介绍执行流程图3.MapReduce原理什么是MapReduce完整工作流程图流程详细描述MapTask流程Shuffle流程Reduce Task流程总结 一、 简介 Hadoop主要在分布式环境下集群机器,获取海量数据的处理能力,实现分布式集群下的大数据存储和计算。 其三大核心组件: HDFS存储分布式文件存储、YARN分布式资源管理、MapReduce分布式计算。 二、工作原理 1.HD
一图看懂hadoop Yarn工作原理
a18192420455的博客
11-08 172
Hadoop 资源调度框架Yarn运行流程 转载于:https://www.cnblogs.com/AlexQY/p/9929327.html
Hadoop Yarn工作原理
weidenglu11的专栏
02-27 834
YARN的基础功能有: 资源的管理, 作业的调度、监控等. ResourceManager和NodeManager形成了Hadoop的数据计算框架.ResourceManager: 负责系统资源在应用间的分配. ResourceManager有两个主要的组件: Scheduler和ApplicationManager. Scheduler只纯碎地负责给运行的应用分配资源, 不会执行失败任务的重启.
MapReduceYarn技术原理
随心发挥
01-17 979
MapReduceYarn技术原理 一、MapReduce概述 MapReduce基于Google---MapReduce论文设计开发 基于函数式(mapper和reducer)编程的思想,用于大规模数据集(大于1TB) 的并行计算和离线计算, 特点: (1)函数式编程:程序员仅需描述做什么,具体怎么做交由系统的执行框架处理。 (2)良好的扩展性:可通过添加节点以扩展集群能力。 (3)高容错性:通过计算迁移或数据迁移等策略提高集群的可用性与容错性 二、MapReduce工...
hadoopmapreduce的区别和联系
05-20
Hadoop是一个分布式计算框架,用于处理大规模数据,包括存储、管理和分析。而MapReduceHadoop框架的一种计算模型,用于在分布式环境下进行大规模数据处理。 具体来说,Hadoop由两部分组成:HDFS(Hadoop分布式文件系统)和MapReduce计算模型。HDFS用于存储数据,MapReduce用于处理数据。 MapReduce的核心思想是将数据拆分成小块,然后在分布式计算节点上并行执行Map和Reduce操作。Map操作将数据转换为键值对,Reduce操作将相同键的值聚合在一起。这种分布式计算方式使得Hadoop可以处理大规模数据,并且可以通过添加更多的计算节点来实现横向扩展。 因此,HadoopMapReduce是密切相关的,Hadoop提供了MapReduce计算模型的实现和支持,并且还提供了其他的组件,如YARN(资源管理器)等,用于进一步简化Hadoop集群的管理和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Class.forName()用法详解 59446
  • java异常处理throw new RuntimeException(e) 30414
  • TCP/IP协议工作原理和工作流程 29330
  • git merge合并分支,解决冲突 29268
  • java序列化与反序列化全讲解 17110

分类专栏

  • 中间件 8篇
  • 计算机网络 13篇
  • 数据库mysql 17篇
  • Linux 13篇
  • Spring生态 16篇
  • 安装教程 12篇
  • 源码分析 7篇
  • 数据结构与算法 8篇
  • 操作系统 10篇
  • java基础 22篇
  • 微服务 2篇
  • 网络安全 4篇
  • 并发多线程 19篇
  • JVM 15篇
  • 设计模式 11篇
  • 大数据hadoop 6篇
  • javaWeb 21篇
  • 正则表达式 1篇
  • Python数据分析处理 14篇
  • Git 11篇
  • 随笔记录 1篇
  • 性能优化 4篇

最新评论

  • Java内存分配(多实例演示)

    qq_34728706: 只要Yong GC,S1和S0就会切换吧,不需要等到S0中的数据满

  • 设计模式概述

    ~being~: 很全面,感谢博主!

  • DNS原理及解析过程详解

    Bugbugggg: 讲的很透彻!!谢谢大佬的分享!!

  • Ubuntu系统修改用户名,主机名,保留配置。

    nixinqi: 这个修改完在登陆进去里面下载的软件和配置会没有吗 我试过了很多都不行

  • java序列化与反序列化全讲解

    快乐小王子之帅气哥哥: 写的好深入呀

大家在看

  • 群体优化算法---蜂群优化算法应用于数据挖掘 28
  • 【C语言】10.C语言指针(4)
  • c基础-指针 1505
  • Pycharm的基础设置+Pycharm与AutoDL服务器连接

最新文章

  • maven命令
  • aws 负载均衡clb/nlb/alb
  • MySQL索引在关联查询中的作用
2022年9篇
2021年9篇
2020年166篇
2019年19篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳SEO优化公司无锡百搜标王报价张家界建设网站多少钱淮南企业网站制作推荐温州关键词按天计费价格银川网络推广报价宝安seo排名报价石岩推广网站价格武威网站设计模板许昌百度竞价报价开封外贸网站制作公司辽阳网站搭建公司营口网站优化按天扣费哪家好衡阳网站推广方案多少钱武威关键词按天扣费三亚seo网站优化价格新乡网站优化软件钦州网站优化排名报价陇南高端网站设计扬州企业网站改版丽江网站推广工具公司宁德关键词按天扣费哪家好绍兴百姓网标王推广多少钱汕尾网站优化按天扣费哈尔滨模板推广价格诸城营销型网站建设推荐开封网站设计报价潜江网站推广公司昆明高端网站设计价格深圳企业网站建设哪家好阳泉网站搭建多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化