
hadoop 2.2
文章平均质量分 70
caodaoxi
这个作者很懒,什么都没留下…
展开
-
Hadoop版本选择探讨
由于Hadoop版本混乱多变,因此,Hadoop的版本选择问题一直令很多初级用户苦恼。本文总结了Apache Hadoop和Cloudera Hadoop的版本衍化过程,并给出了选择Hadoop版本的一些建议。1. Apache Hadoop1.1 Apache版本衍化截至目前(2012年12月23日),Apache Hadoop版本分为两代,我们将第一代Hadoop称为Hado转载 2013-10-23 14:48:11 · 653 阅读 · 0 评论 -
统一资源管理与调度平台(系统)介绍
1. 背景随着互联网的高速发展,基于数据密集型应用的计算框架不断出现,从支持离线处理的MapReduce,到支持在线处理的Storm,从迭代式计算框架Spark到流式处理框架S4,…,各种框架诞生于不同的公司或者实验室,它们各有所长,各自解决了某一类应用问题。而在大部分互联网公司中,这几种框架可能都会采用,比如对于搜索引擎公司,可能的技术方案如下:网页建索引采用MapReduce框架,自然语言转载 2013-10-23 14:42:51 · 1120 阅读 · 0 评论 -
如何编写YARN应用程序
1. 概述YARN是一个资源管理系统,负责集群资源的管理和分配。如果想要将一个新的应用程序运行在YARN之上,通常需要编写两个组件:客户端和ApplicationMaster。由于这两个组件编写非常复杂,尤其ApplicationMaster,需要考虑RPC调用、任务容错等细节,所以,往往由专业的开发人员编写这两个组件,并提供给上层的应用程序用户使用。如果大量应用程序可抽象成一种通用框转载 2013-10-23 14:50:41 · 737 阅读 · 0 评论 -
YARN/MRv2 MRAppMaster深入剖析—概述
1. 什么是MRAppMaster?我们知道,在MRv1中,JobTracker存在诸多问题,包括存在单点故障,扩展受限等,为了解决这些问题,Apache对MRv1进行了改进,提出了YARN,YARN将JobTracker中的作业控制和资源管理两个功能分开,分别由两个不同的进程处理,进而解决了原有JobTracker存在的问题。经过架构调整之后,YARN已经完全不同于MRv1,它已经变成了一个转载 2013-10-23 14:53:52 · 916 阅读 · 0 评论 -
YARN/MRv2 MRAppMaster深入剖析—ContainerLauncher分析
ContainerLauncher负责与NodeManager通信,以启动一个container。在YARN中,运行Task所需的全部信息被封装到Container中,包括所需资源、依赖的外部文件、jar包、运行时环境变量、运行命令等。ContainerLauncher通过ContainerManager协议与NodeManager通信,该协议定义了三个RPC接口,具体如下:StartCo转载 2013-10-23 15:00:40 · 784 阅读 · 0 评论 -
YARN/MRv2 MRAppMaster深入剖析—推测执行机制
1. 背景推测执行(Speculative Execution)是指在分布式集群环境下,因为程序BUG,负载不均衡或者资源分布不均等原因,造成同一个job的多个task运行速度不一致,有的task运行速度明显慢于其他task(比如:一个job的某个task进度只有10%,而其他所有task已经运行完毕),则这些task拖慢了作业的整体执行进度,为了避免这种情况发生,Hadoop会为该task启转载 2013-10-23 15:01:49 · 881 阅读 · 0 评论 -
YARN/MRv2 Resource Manager深入剖析—用户交互相关模块分析
YARN分别针对普通用户,管理员和Web提供了三种对外服务,分别对应ClientRMService、AdminService和WebApp,本节将对这三个服务分别进行详细介绍。1. ClientRMServiceClientRMService是为普通用户提供的服务,它会处理来自客户端各种RPC请求,比如提交应用程序、终止应用程序,获取应用程序运行状态等。ClientRMServic转载 2013-10-23 15:08:45 · 702 阅读 · 0 评论 -
YARN/MRv2 中基本术语介绍
YARN/MRv2是下一代MapReduce框架(见Hadoop-0.23.0),该框架完全不同于当前的MapReduce框架,它在扩展性,容错性和通用性等方面更出色,据统计,Yarn有超过150000行代码,完全是重写编写的。本文介绍了YARN/MRv2中基本术语的含义,帮助有兴趣的程序员们对YARN有一个初步的理解。 (1) YARN下一代MapReduce框架的名称,为了容易记...原创 2013-10-23 14:19:12 · 219 阅读 · 0 评论 -
下一代Apache Hadoop MapReduce框架的架构
背景 随着集群规模和负载增加,MapReduce JobTracker在内存消耗,线程模型和扩展性/可靠性/性能方面暴露出了缺点,为此需要对它进行大整修。需求当我们对Hadoop MapReduce框架进行改进时,需要时刻谨记的一个重要原则是用户的需求。近几年来,从Hadoop用户那里总结出MapReduce框架当前最紧迫的需求有:(1)可靠性(Reliability)...原创 2013-10-23 14:21:58 · 145 阅读 · 0 评论 -
YARN/MR2编程模型介绍
Hadoop 0.23.0是一个通用的资源分配框架,它不仅支持MapReduce计算框架,同时也支持流式计算框架,迭代计算框架,MPI等。它实现时采用基于了事件驱动机制,异步编程模型,如下图所示: 该图片来自《Hadoop 0.23 MRv2分析》EventHandler被称作事件处理器, 每种事件类型对应一种EventHandler,其对事件的处理过程通过状态机来描述,handle...原创 2013-10-23 14:24:10 · 361 阅读 · 0 评论 -
YARN/MRv2的Client端代码分析
1. 写在前面正如前几篇文章所述,YARN/MRv2是一个资源统一管理系统,它上面可以运行各种计算框架,而所有计算框架的client端编写方法类似,本文拟以MapReduce计算框架的client端代码为例进行说明。2. 两个相关协议需要通过两个协议提交作业:ClientProtocol:Hadoop中的JobClient通过该协议向JobTracker提交作业Clien...原创 2013-10-23 14:30:38 · 159 阅读 · 0 评论 -
YARN/MRv2 Resource Manager深入剖析—RM总体架构
在YARN中,ResourceManager负责集群中所有资源的统一管理和分配,它接收来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序(实际上是ApplicationManager)。ResourceManager主要由以下几个部分组成:用户交互YARN分别针对普通用户,管理员和Web提供了三种对外服务,分别对应ClientRM转载 2013-10-23 15:07:51 · 696 阅读 · 0 评论 -
YARN/MRv2 MRAppMaster深入剖析—作业恢复
在MRAppMaster中,记录日志是由服务JobHistoryEventHandler完成的,而作业恢复是由服务RecoveryService完成的。同MRv1一样,MRv2也会对一些关键的事件记录日志,这主要有两个作用:(1)方便用户查看历史作业运行信息 (2)作业因故障重新启动后,可根据日志信息恢复之前已经运行完成的任务,以减少重新计算代价。MRAppMaster采用的日志格式与MR转载 2013-10-23 15:03:05 · 848 阅读 · 0 评论 -
YARNMRv2 Node Manager深入剖析—NodeManager启动Container流程分析
1. 介绍NodeManager的一个最重要的功能是根据ApplicationMaster的要求启动container,由于各个节点上的container由ResourceManager进行统一管理和分配的,通常,ResourceManager将Container分配给ApplicationMaster,ApplicationMaster再进一步要求对应的NodeManager启动contai转载 2013-10-23 14:46:17 · 714 阅读 · 0 评论 -
YARN编程实例—distributedshell源码分析
1. 概述本文介绍YARN自带的一个非常简单的应用程序编程实例—distributedshell,他可以看做YARN编程中的“hello world”,它的主要功能是并行执行用户提供的shell命令或者shell脚本。本文主要介绍distributedshell 的实现方法。Distributedshell的源代码在文件夹src\hadoop-yarn-project\hadoo转载 2013-10-23 14:52:16 · 1084 阅读 · 0 评论 -
YARN/MRv2 MRAppMaster深入剖析—ContainerAllocator分析
1. ContainerAllocator概述ContainerAllocator负责与ResourceManager通信,为作业申请资源。作业的每个任务资源需求可描述为四元组,分别表示作业优先级、期望资源所在的host,资源量(当前仅支持内存),container数目,比如://优先级是一个正整数,优先级值越小,优先级越高 //*表示这样的资源可来自任意一个节点,即不考虑数据转载 2013-10-23 14:57:45 · 888 阅读 · 0 评论 -
YARN/MRv2 RPC框架深入剖析—引入Protocal Buffer的好处
Hadoop2.0中已经将Protocol buffer(以面简称PB ,http://code.google.com/p/protobuf/ )作为默认的序列化/反序列化框架,原来的自己实现的基于Writable的方式已经被淘汰了。来自Cloudera的Aaron T. Myers在邮件中这样说的“since PB can provide support for evolving proto转载 2013-10-23 15:06:59 · 758 阅读 · 0 评论 -
YARN/MRv2 Resource Manager深入剖析—服务与事件处理器
ResourceManager中的对象均被封装成服务和事件处理器,其中,封装成服务是为了统一管理,而所有事件处理器处理来自中央总调度器分配的事件,总调度器将各个服务发送出来的事件按照事件类型分配给对应的事件处理器,如此循环,构成了ResourceManager的整体架构。(1)RM中的服务YARN采用了服务模型,它将各种对象服务化,以便于统一管理(统一启动、关闭等)。YARN中将服务分为两转载 2013-10-23 15:09:45 · 646 阅读 · 0 评论 -
YARN/MRv2 Resource Manager深入剖析—AM管理
ApplictionMaster管理部分主要由三个服务构成,分别是AMLivelinessMonitor、ApplicationMasterLauncher和ApplicationMasterService,它们共同管理ApplicationMaster的生存周期,接下来我们依次介绍这三个服务。AMLivelinessMonitor该服务周期性遍历所有ApplicationMaster转载 2013-10-23 15:12:53 · 733 阅读 · 0 评论 -
YARN/MRv2 ResourceManager代码分析
本文分析了Hadoop-0.23.0中一个Application从提交到运行结束的整个过程。期间涉及到Client,ResourceManage,NodeManager等组件以及RMClientProtocol,AMRMProtocol,ContainerManager等通信协议。【注】 本文的两个主要图片可能不够清晰,可以从这里下载。(上图参考了《Hadoop 0.23 MRv2转载 2013-10-23 14:39:41 · 1232 阅读 · 0 评论 -
YARN/MRv2 MRAppMaster深入剖析—整体架构
MRAppMaster是MapReduce的ApplicationMaster实现,它使得MapReduce计算框架可以运行于YARN之上。在YARN中,MRAppMaster负责管理MapReduce作业的生命周期,包括创建MapReduce作业,向ResourceManager申请资源,与NodeManage通信要求其启动Container,监控作业的运行状态,当任务失败时重新启动任务等。转载 2013-10-23 14:55:15 · 962 阅读 · 0 评论 -
YARN/MRv2 MRAppMaster深入剖析—作业生命周期
本节分析一个作业从开始运行到运行结束,所经历的整个过程,期间涉及到的各种事件和状态变化。在正式讲解作业生命周期之前,先要了解MRAppMaster中作业表示方式,每个作业由若干干Map Task和Reduce Task组成,每个Task进一步由若干个TaskAttempt组成,Job、Task和TaskAttempt的生命周期均由一个状态机表示,具体可参考https://issues.apac转载 2013-10-23 14:56:32 · 817 阅读 · 0 评论 -
YARN/MRv2 Node Manager深入剖析—节点健康状况检测
概述节点健康状况检测是YARN为每个NodeManager提供的机制,通过该机制,NodeManager可通过心跳机制将节点健康状况实时汇报给ResourceManager,而ResourceManager则会根据每个NodeManager的健康状况适当调整分配的任务数目。当NodeManager认为自己的健康状况“欠佳”时,可让ResourceManager不再分配任务,待健康状况好转时,再转载 2013-10-23 15:13:49 · 1099 阅读 · 0 评论 -
YARN/MRv2 Node Manager深入剖析—整体架构
NodeManager(NM)是YARN中每个节点上的代理,它管理Hadoop集群中单个计算节点,包括与ResourceManger保持通信,监督Container的生命周期管理,监控每个Container的资源使用(内存、CPU等)情况,追踪节点健康状况,管理日志和不同应用程序用到的附属服务(auxiliary service)。【NodeStatusUpdater】当NM启动时,该转载 2013-10-23 14:45:01 · 693 阅读 · 0 评论 -
YARN/MRv2 ResourceManager代码结构分析
ResourceManager相当于整个系统的master,主要功能是启动application的ApplicationMaster和分配系统资源。 ResourceManager的核心代码在java包 org.apache.hadoop.yarn.server.resourcemanager中的ResourceManager类中,主要涉及到三种 对象:事件处理器,RPC服务和普通服务,...原创 2013-10-23 14:32:22 · 146 阅读 · 0 评论