技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

Yarn Scheduler Load Simulator YARN调度负载模拟器

    项目起源是因为有人希望有个模拟环境来模拟公平调度器和容量调度器,以便合理配置调度器,降低生产环境出问题的风险,详见https://issues.apache.org/jira/browse/YARN-1021。之后在hadoop2.3.0就增加了这个工具。    首先设定环境变量:     export HADOOP_HOME=/usr/hadoop-2.3.0... 全文

Scheduler YARN

Hadoop 2.2 YARN分布式集群搭建配置流程

搭建环境准备:JDK1.6,SSH免密码通信 系统:CentOS 6.3 集群配置:NameNode和ResourceManager在一台服务器上,三个数据节点 搭建用户:YARN... 全文

hadoop 2.2 yarn 配置流程 yarn配置 使用手册

storm

把一个应用程序移植到yarn到,需要编写两个部分:client和AppMaster。其中client用于向yarn提交应用程序,获得appid,并且启动appMaster,而appMaster在启动后将启动相应的服务,申请新container来运行任务,以及任务失败的fail over等。在storm-yarn项目中,appMaster则需要启动nimbus和ui服务,当提交storm任务后,也需要申请新的container来运行任务,其架构如下图:接下来看一下storm-yarn的代码。代码比较简单,有以下几个类,都在一个包中:其中各个类的作用简要介绍如下:... 全文

jstorm yarn storm-yarn

YARN ResourceManager调度器的分析

YARN是Hadoop新版中的资源控制框架。本文旨在深入剖析ResourceManager的调度器,探讨三种调度器的设计侧重,最后给出一些配置建议和参数解释。本文分析基于CDH4.2.1。调度器这个部分目前还在快速变化之中。例如,CPU资源分配等特性在不就的将来就会加入。为了方便查阅源代码,原代码位置使用[类名:行号]方式表示。名词解释:ResourceManager:以下简称RM。YARN的中控模块,负责统一规划资源的使用。NodeManager:以下简称NM。YARN的资源结点模块,负责启动管理container。... 全文

YARN ResourceManager job调度器

Hadoop Yarn(一)—— 单机伪分布式环境安装

HamaWhite(QQ:530422429)原创作品,转载请注明出处:http://write.blog.csdn.net/postedit/40556267。本文是根据Hadoop官网安装教程写的Hadoop YARN在单机伪分布式环境下的安装报告,仅供参考。... 全文

Hadoop YARN

Yarn架构基本概况(一)

1)引言针对MRv1在扩展性,可靠性,资源利用率和多框架的支持上存在着明显的不足,进而诞生了下一代的MapReduce的计算框架MapReduce Version2,MRV1中有一个很大的问题就是把资源管理和作业调度都扔给了JobTracker,造成了严重的单点瓶颈问题,所有MRV2主要在这一点上做了改进,他将资源管理模块构建成了一个独立的通用系统叫做Yarn,一下子MRV2的核心从MapReduce转到了Yarn上。后面就有了关于Yarn的各种发展和演变了。)Yarn设计理念和基本架构yarn是专门为了解决MRV1的缺点而生的。... 全文

yarn 弹性计算 hadoop 框架 mapreduce

官方译文【hadoop yarn 运行原理剖析】

虽然效率比较低,还是感觉翻译一下走脑走心。。。。不见得全背过,思想犹存。。。犹存。。Hadoop MapReduce Next Generation -Writing YARN Applications... 全文

yarn hadoop集群 hadoop 剖析

Spark on Yarn ”爬坑“集锦(spark1.2)

一、概述    Ha,已经有两个月没有更新blog了。由于近排公司需要引入Spark相关技术,我也是作为技术攻关人员之一,在这段时间使用Spark遇到了挺多问题,跌的坑也比较多,这篇blog主要总结一下这段时间使用Spark遇到的一些问题。二、遇到的"坑"和爬坑思路1、SparkSql on yarn-client模式遇到找不到mysql驱动包问题。解决方案:这个比较简单直接编辑$SPARK_HOME/conf/spark-env.sh文件,将mysql的驱动jarexport进去,如:... 全文

spark yarn

利用graphviz生成hadoop 2.0 Yarn中的MR/RM/NM状态转换图

Graphviz是基于dot语言的绘图工具,它不是使用鼠标来画图的,而是通过dot语言描述,然后在命令行下使用命令生成对应的图片如有向图、无向图、关系图、目录图、流程图等。这样做的优点是不用去手动的对齐坐标,而且也可以作为一些可视化的解决方案。 在hadoop yarn中,可以很方便的生成状态转换图: (1) 安装graphviz... 全文

graphviz yarn

Hadoop

一概要        YARN采用了Maser/Slave结构,其中Master实现为ResourceManager,负责整个集群的资源管理与调度; Slave实现为NodeManager,负责单个节点的资源管理与任务启动。                       ResourceManager是整个YARN集群中最重要的组件之一,它的设计直接决定了系统的可扩展性、可用性和容错性等特点,它的功能较多,包括ApplicationMaster管理(启动、停止等)、NodeManager管理、Application管理、状态机管理等。        在YARN中,ResourceManager负责集群中所有资源的统一管理和分配,它接受来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序(即ApplicationMaster)。        注:ResourceManager主要完成一下几个功能:                1.与客户端交互,处理来自客户端的请求。                2.启动和管理ApplicatinMaster,并在它运行失败时重新启动它。                3.管理NodeManager,接受来自NodeManager的资源管理汇报信息,并向NodeManager下达管理命令(比如杀死Contanier)等。                4.资源管理与调度,接收来自ApplicationMaster的资源申请请求,并为之分配资源(核心)。二 ResourceManager 内部结构                                                                                                                               ResourceManager 内部组件2.1.用户交互模块       RM分别针对普通用户(ClientRMService)、管理员(AdminService)和Web提供了三种对外服务。普通用户和管理员这两类请求通过两个不同的通信通道发送给RM,是因为要避免普通用户请求过多导致管理员请求被阻塞而迟迟得不到处理。2.2 NodeManager 管理模块      NodeManagerLivelinessMonitor      监控NodeManager是否活着,如果一个NodeManager在一定时间内(10min)未回报心跳信息,则认为它死掉了,需将其从集群中移除。      NodeListManager       管理exclude和include节点列表,维护正常节点和异常节点列表。       ResourceTrackerService       处理来自NodeManager的请求,主要包括注册和心跳两种请求。注册是NodeManager启动时发生的行为,请求包中包含节点的ID、可用资源的上限等信息;心跳是周期性的行为,包含各个Container运行状态,运行的Application列表、节点健康状况等信息,作为请求的应答,ResourceTrackService可为NM返回释放Container列表、Application列表等信息。 2.3 ApplicationMaster 管理模块       AMLivelinessMonitor       监控ApplicationMaster是否还活着,如果一个ApplicationMaster在一定时间(10min)内未汇报心跳信息,则认为它死掉了,它上面的所有正在运行的Container将被设置为失败状态,而ApplicationMaster本身会被重新分配到另一个节点上(默认尝试运行2次)。       ApplicationMasterLaucher       与某个NM 通信,要求它为某个应用程序启动ApplicationMaster。       ApplicationMasterService       负责处理来自ApplictionMaster的请求,请求主要包括注册、心跳和清理三种。       注册是AM 启动时发生的行为,注册请求包中包含AM启动节点,对外的RPC端口号和tracking URL等信息。       心跳是周期性的行为,汇报信息包括所需资源的描述、待释放的Container列表、黑名单列表,ApplicationMasterService则为之返回新分配的Container、失败的Container、待抢占的Container列表等信息。       清理是应用程序结束时发生的。ApplicationMaster向RM发送清理应用程序的请求,以回收资源和清理各种内存空间。2.4 Applicatin 管理模块      ApplicationACLsManager      负责管理应用程序的访问权限,包含两部分权限:查看权限和修改权限。查看权限主要用于查看应用程序基本信息,而修改权限则主要用于修改应用程序的优先级、杀死应用程序等。      RMAppManager      负责管理应用程序的启动和关闭。ClientRMService收到来自客户端的提交应用程序的请求后,将调用函数RMAppManager#submitAppication创建一个RMApp对象,它将维护整个应用程序生命周期,从开始运行到最终结束。      注:RM不负责ApplicationMaster内部任务的执行以及容错,只负责资源的分配和状态的跟踪。      ContainerAllocationExpirer      当一个ApplicationMaster获得一个Container后,YARN不允许ApplicationMaster长时间不对其使用,这样会降低整个集群的利用率。当ApplicationMaster收到RM新分配的一个Container后,必须再一定的时间内(默认为10min)内在对应的NM上启动该Container,否则RM将强制回收该Container,而一个已经分配的Container是否被回收则是由ContinerAllocationExpier决定和执行的。2.5 状态机管理模块      负责维护应用程序的整个运行周期,包括维护同一个Application启动的所有运行实例的生命周期(RMApp)、维护一次运行尝试的整个生命周期(RMAppAttempt)、维护一个Contaner的运行周期(RMContainer)、维护一个NodeManager的生命周期(RMNode)。      注:1. RMContainer维护了一个Container的运行周期,包括从创建到运行的整个过程。RM将资源封装成Container发送给应用程序的ApplicationMaster,而ApplicationMaster则会在Container描述的环境中启动任务,因此,从这个层面上讲,Container和任务的生命周期是一致的(目前YARN不支持Container的重用,一个Container用完后会立刻释放,将来可能会增加Container的重用机制)。             2. RMNode状态机是ResourceManager中用于维护一个节点生命周期的数据结构,它的实际是RMNodeImple类,该类维护了一个节点状态机,记录了节点可能存在的各个状态。例如,当一个应用程序执行完成时候,会触发一个CLEANUP_APP事件,以清理应用程序占用的资源。当一个Container执行完成时候,会触发一个CLEANUP_CONTAINER事件,以清理Container占用的资源。             3.在YARN中,根据应用程序需求,资源被切分成大小不同的资源块,每份资源的基本信息由Container描述,而具体的使用状态追踪则是由RMContainer完成。RMContainer是ResoueceManager中用于维护一个Container生命周期的数据结构,它的实现是RMContianerImpl类,该类维护了一个Container状态机,记录了一个Container可能存在的各个状态以及导致状态转换的事件,当某个事件发生的时候,RMContainerImpl会根据实际情况进行Container状态的转移,同时触发一个行为。            4. ApplicationMaster通过RPC函数ApplicationMasterProtocol#allocate拉取分配给它的Container后,将与对应的NodeManager通信以启动这些Container,接着NodeManager通过心跳机制将这些Container状态汇报给ResourceManager,最终ResourceManager将这些Container状态置为RUNNING.           5.当出现以下几种情况时,将导致Container置为KILLED状态。               a.资源调度器为了保持公平性或者更高优先级的应用程序的服务质量,不得不杀死一些应用占用的Container以满足另外一些应用程序的请求。               b.某个NodeManager在一定时间内未向ResourceManager汇报心跳信息,则ResourceManager认为它死掉了,会将它上面所在正在运行的Container状态设置为KILLED。               c.用户(使用API 或者 Shell命令)强制杀死一个RMAppAttempImpl实现时,会导致它所用的Container状态设置为KILLED。2.6 安全管理模块        YARN自带了非常全面的权限管理机制,一般而言,系统安全机制由认证和授权两大部分组成。认证就是简单的对一个实体的身份进行判断;授权则是向实体授予对数据资源和信息访问权限的决策过程。     Hadoop认证机制的实现同时采用了Kerberos和Token两种技术,其中Kerberos用于用户与服务与服务之间的认证,他是一种基于可信任的第三方服务的认证机制,在高并发情况下,效率低。2.7 资源分配模块       ResourceScheduler是资源调度器,它按照一定的约束条件(比如队列容量限制等)将集群中的资源分配给各个应用程序,当前主要考虑内存和CPU资源。ResourceScheduler是一个插拔式模块,YARN自带了一个批处理资源管理器-FIFO和两个多用户调度器--Fair Scheduler和Capacity Scheduler。三 常见行为分析3.1 ApplicationMaster 超时      AM向RM注册后,必须周期性通过RPC函数ApplicationMasterProtocol#allocate向ResrouceManager汇报心跳以表明自己还活着。如果一段时间按(默认是10min)内未汇报心跳,则ResourceMananger宣布它死亡,进而导致应用程序重新运行或者直接退出。3.2 NodeManager 超时      NodeManger启动后通过RPC函数ResourceTracker#registerNodeManager向RM注册,之后将被加入到NMLivenessMonitor中进行监控。它必须周期性通过RPC函数ResourceTracker#nodeHeartBeat向RM汇报心跳以表明自己还活着,如果一段时间内(默认是10min)内为汇报心跳,则RM宣布它已经死亡,所以正在运行在它上面的Container将被回收。3.3 Container 超时      在YARN中,存在两种类型的Container,分别是用于运行ApplicationMaster的Container(AM Container)和运行普通任务的Container(简称为 "普通Container")。第一种Container超时将导致整个Application运行失败,而第二种Container超时则会触发一次资源回收。而要注意的是,第二种Container超时导致任务运行失败后,YARN不会主动将其调度到另一个节点上运行,而是将状态告诉应用程序的ApplicationMaster,由它决定是否重新申请资源或者重新执行。      注:RM只负责资源的分配和回收以及应用程序状态的维护,它不会负责当任务失败的时候进行重启Container,即不负责容错处理。3.4 AM超时       RMAppImpl收到超时事件后,如果未超过用户设置的运行次数上限,将尝试启动一个新的RMAppAttemptImp或者直接宣布该应用程序运行失败;ResourceScheduler收到事件后,会清理该应用相关信息。四 高可用      Hadoop1.0中,HDFS和MapReduce均采用了Master/Slave结构,这种结构虽然具有设计非常简单的有点,但同时也存在Master单点故障问题。由于存在单点故障问题的系统不适合在线应用场景,这使得Hadoop在相当长时间内仅用于离线存储和计算。        在Hadoop2.0中,HDFS同样面临着单点故障问题,但由于每个MapReduce作业拥有自己的作业管理组件,因此不再存在单点故障问题,新引入的资源管理系统YARN也采用了Master/Slave结构 ,同样出现了单点故障问题。        在 Master/Slave架构中,为了解决Master的单点故障问题(也成为高可用问题,即HA,High Availability),通常采用热备方案,即集群中存在一个对外服务的Active Master和若干个处于就绪状态的Standy Master,一旦Active Master出现故障,立即采用一定的侧率选取某个Standy Master转换为Active Master以正常对外提供服务。      HDFS 和 YARN均采用了基于共享存储的HA 解决方案,即Active Master不断将信息写入一个共享存储系统,而Standy Master则不断读取这些信息,以与Active Master的内存信息保持同步。当需要主备切换时,选中Standby Master需先保证信息完全同步后,再将自己的角色切换至Active Master。      Zookeeper是一个针对大型文件分布式系统的可靠协调系统,提供的功能包括统一命名服务、配置管理、集群管理、共享锁和队列管理等。需要注意的是Zookeeper设计目的并不是数据存储,但它的确可以安全可靠地存储少量数据以解决分布式环境下多个服务之间的数据共享服务。五 小结     在YARN中,ResourceManager扮演管理者角色,它负责整个集群的管理与调度。ResourceManager内部有多个功能管理模块,主要包括:ApplicatoinMaster管理(启动和停止)、NodeManager管理、Application管理、状态机管理等。... 全文

Hadoop YARN ResourceManager

Hadoop

一 简介      RPC协议是连接各个组件的“大动脉”,了解不同组件之间的RPC协议有助于我们更深入地学习YARN框架。在YARN中,任何两个需相互通信的组件之间仅有一个RPC协议,而对于任何一个RPC协议,通信双方有一端是Client,另一端为Server,且Client总是主动连接Server的,因此,YARN实际上采用的是拉式(pull-based)通信模型。二  协议类型            YARN主要由以下几个RPC协议组成,各组件的通信协议(箭头指向的组件是RPC Server,而箭头尾部的组件是RPC Client),如下图所示:                                                                                       YARN 组件间主要通信协议        JobClient(作业提交客户端)与RM之间的协议— ApplicationClientProtocol:JobClient通过该RPC协议提交应用程序、查询应用程序状态等。         Admin(管理员)与RM之间的通信协议—ResourceManagerAdministrationProtocol:Admin通过该RPC协议更新系统配置文件,比如节点黑白名单、用户队列权限等。 AM与RM之间的协议—ApplicationMasterProtocol:AM通过该RPC协议向RM注册和撤销自己,并为各个任务申请资源。        AM与NM之间的协议—ContainerManagementProtocol:AM通过该RPC要求NM启动或者停止Container,获取各个Container的使用状态等信息。        NM与RM之间的协议—ResourceTracker:NM通过该RPC协议向RM注册,并定时发送心跳信息汇报当前节点的资源使用情况和Container运行情况。四 Protocol Buffers            为了提高Hadoop的向后兼容性和不同版本之间的兼容性,YARN中的序列化框架采用了Google开源的Protocol Buffers。  除序列化/反序列化之外,Protocol Buffers也提供了RPC函数的定义方法,YARN中所有RPC函数的参数均采用Protocol Buffers定义,相比MRv1中基于Writable序列化的方法,Protocol Buffers的引入使得YARN在向后兼容性和性能方面向前迈进了一大步。               下面是使用Protocol Buffers 定义 ContainerManager RPC协议的proto文件:                 service ContainerManagerService {                        rpc startContainer(StartContainerRequestProto) returns (StartContainerResponseProto);             rpc stopContainer(StopContainerRequestProto) returns (StopContainerResponseProto);                            rpc getContainerStatus(GetContainerStatusRequestProto) returns (GetContainerStatusResponseProto);        }      除此之外还有如下proto文件:            applicationmaster_protocol.proto:定义了AM与RM之间的协议—ApplicationMasterProtocol。            applicationclient_protocol.proto:定义了JobClient(作业提交客户端)与RM之间的协议—ApplicationClientProtocol。        containermanagement_protocol.proto:定义了AM与NM之间的协议—Container-ManagementProtocol。        resourcemanager_administration_protocol.proto:定义了Admin(管理员)与RM之间的通信协议—ResourceManagerAdministrationProtocol。        yarn_protos.proto:定义了各个协议RPC的参数。        ResourceTracker.proto:定义了NM与RM之间的协议—ResourceTracker。   除了以上几个协议,YARN还使用Protocol Buffers对MapReduce中的协议进行了重新定义:           MRClientProtocol.proto:定义了JobClient(作业提交客户端)与MRAppMaster之间的协议—MRClientProtocol。           mr_protos.proto:定义了MRClientProtocol协议的各个参数。五 小结                 YARN各个协议间的通信方式采用了pull-based通信模型,而不是push-base模型。pull-based通信模型的优点是实现比较容易简单,缺点是通信延迟比较大,与之相反的是,push-base模型实现比较复杂,但是它可以减少组件间的通信延迟。... 全文

Hadoop YARN 通信协议

Hadoop

   一  YARN的启动流程                                                                                                                                               YARN 启动流程     1.提交应用及其使用到的资源    用户向YARN中(RM)提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。客户端将应用程序所需的文件资源(外部字典、JAR包、二进制文件等)提交到 HDFS.  2.启动ApplicationMaster      ResourceManager为该应用程序分配第一个Container,并与对应的NodeManager通信,要求它在这个Container中启动应用程序的ApplicationMaster。ApplicationMaster与ResouceManager通信,以请求和获取资源。ApplicationMaster获取到资源后,与对应的NodeManager通信以启动任务。如果该应用程序第一次在给节点上启动任务,则NodeManager首先从HDFS上下载文件缓存到本地,然后启动该任务。     注:分布式缓存并不是将文件缓存到集群中各个结点的内存中,而是将文件换到各个结点的磁盘上,以便执行任务时候直接从本地磁盘上读取文件。  3.注册应用   ApplicationMaster首先向ResourceManager注册,表明自己启动成功,这样用户可以直接通过ResourceManage查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤4~7。  4.为任务申请资源   ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。   5.与NM通信启动各个任务    一旦ApplicationMaster申请到资源后,ApplicationMaster就会将启动命令交给NodeManager,要求它启动任务。启动命令里包含了一些信息使得Container可以与Application Master进行通信。  6.NM启动任务     NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务(Container)。  7.执行任务     在Container内执行用户提交的代码,各个Container通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。  8.任务状态查询      在应用程序运行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态。  9.运行完毕     应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。二 AM与RM的详细交互     1.用户向YARN ResourceManager提交应用程序,RM收到提交申请后,先向资源调度器申请用以启动AM 的资源,待申请到资源后,再由ApplicationMasterLauncher与对应的NodeManager通信,从而启动应用程序的ApplicationMaster.     2.ApplicationMaster启动完成后,ApplicationMasterLaucher会通过事件的形式,将刚刚启动的Application Master注册到AMLiveMonitor,以启动心跳监控。     3.ApplicationMaster启动后,先向ApplicatinMaterService注册,并将自己所在host、端口号等信息汇报给它。     4.AM运行过程中,周期性地向ApplicationMaserService回报心跳信息(信息中包含想要申请的资源描述)。     5. ApplicationMasterService每次收到ApplicationMaster心跳信息好后,将通知AMLivelinessMonitor更新应用程序的最新回报心跳的时间。     6.应用程序运行完成后,AM向AMService发送请求,注销自己。     7.AMService收到注销请求后,标注应用程序运行状态完成,同时通知AMLivelinessMonitor移除对它的心跳监控。三 小结      当用户向YARN中提交一个应用程序后,YARN将分两个阶段运行该应用程序:第一个阶段是启动ApplicationMaster;第二个阶段是由ApplicationMaster创建应用程序,为它申请资源,并监控它的整个运行过程,直到运行完成... 全文

Hadoop YARN 启动流程

Hadoop MapReduceV2(Yarn) 框架简介

http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/... 全文

Hadoop

Hadoop-2.2.0在Hadoop-1.x的基础上进行了重大改进,主要体现在HDFS和MapReduce上。下面大体介绍HDFS和MapReduce改进的地方。... 全文

Hadoop-2.2.0 YARN HDFS联盟

Hadoop 2.0 Yarn代码:心跳驱动服务分析

主要涉及的java文件hadoop-yarn-server-resourcemanager下的包org.apache.hadoop.yarn.server.resourcemanagerResourceTrackerService.javaorg.apache.hadoop.yarn.server.resourcemanager.scheduler.fifoFifoScheduler.javaorg.apache.hadoop.yarn.server.resourcemanager.rmnodeRMNodeImpl.javahadoop-yarn-server-nodemanager下的包... 全文

Hadoop 2.0

Hadoop

       在Hadoop-1.x版本中主要使用hadoop脚本执行各种命令,包括运行jar文件(jar),运行文件系统客户端(fs),运行HDFS管理客户端(dfsadmin)等,但Hadoop-2.x将hadoop脚本拆分为hadoop、hdfs、mapred几个脚本,并新增了yarn脚本用于执行与yarn有关的命令。在命令行直接执行上述脚本都会输出该脚本的使用方法,比如hadoop。其中--config选项用于指定配置文件的目录以覆盖默认配置文件目录(${HADOOP_HOME}/etc/hadoop)。... 全文

Hadoop-2.4.1 command yarn hdfs mapreduce

Yarn架构基本概况(二)

在概况(一)中,主要简单的对Yarn的情况作了简单的介绍,今天花一定时间在某些具体的模块上呈现以下Yarn的整体情况,帮助大家更好的理解Yarn。1)ResourceManager在Yarn的整体架构中,他用的也是Master/Slave架构,他的Slave是NodeManager,RM在Yarn中扮演着一个非常重要的角色,他是负责集群中所有资源的统一管理和分配的。他根据各个NM的资源汇报信息,把这些信息按照一定策略分配各个应用程序。下面是ResourceManager的主要内部结构:... 全文

hadoop集群 框架 架构 hadoop mapreduce

Hadoop

MapReduce在hadoop-0.23版本中进行了完全的检查修改,并发展为了现在称之为的MapReduce2.0(MRv2)或者YARN。YARN的基本想法是将JobTracker的两个主要功能资源管理和作业调度监控分开为独立的后台进程,目标是拥有一个全局ResourceManager (RM)和每个应用程序一个的ApplicationMaster (AM)。一个应用程序或者是从经典MapReduce作业角度来看的一个单独作业,或者是这种作业的一个有向无环图(DAG)ResourceManager和从节点的NodeManager(NM)组成了数据计算框架,ResourceManager是协调系统中所有应用程序之间资源的最终权威。事实上,ApplicationMaster是框架特定的类库,任务是从ResourceManager协调资源以及同NodeManager一起工作进行任务的执行和监控。下图为YARN的架构示意图。... 全文

Hadoop-2.2.0 YARN 调度器 ResourceManager NodeManager

Hadoop

      Hadoop-2.X较Hadoop-1.X有了很大的变化,比如YARN将JobTracker的两个主要功能资源管理和作业调度监控分开为独立的后台进程,配置文件及参数也有了很大变化,目录结构的调整等。另外在Hadoop-2.X版本中,通常专门指定一台主机为NameNode,另一台主机做为ResourceManager,这两台主机为masters,集群中剩余的主机既做为DataNode也做为NodeManager,为slaves,这也与Hadoop-1.X中不同。      Hadoop-2.X有两种类型的配置文件,一种为只读的默认的配置文件,分别为core-default.xml,hdfs-default.xml,yarn-default.xml 和mapred-default.xml。另一种为不同模块的特定配置文件,分别为etc/hadoop/core-site.xml,etc/hadoop/hdfs-site.xml,etc/hadoop/yarn-site.xml和etc/hadoop/mapred-site.xml。另外还可以通过etc/hadoop/hadoop-env.sh和etc/hadoop/yarn-env.sh对执行环境,如:配置文件存放目录,日志目录,Java堆大小等进行配置管理。下面将从Hadoop守护进程的运行环境和守护进程的配置管理参数两方面学习Hadoop的配置管理。... 全文

Hadoop-2.4.1 YARN 配置管理 mapreduce 源代码

1 2