随笔分类 -  Hadoop

摘要:社区hadoop2.2.0 release版本开始支持NameNode的HA,本文将详细描述NameNode HA内部的设计与实现。为什么要Namenode HA?1. NameNode High Availability即高可用。2. NameNode 很重要,挂掉会导致存储停止服务,无法进行数据... 阅读全文
posted @ 2014-07-26 16:00 南国故人(Wall) 阅读(7049) 评论(0) 推荐(0) 编辑
摘要:原文见 http://xiguada.org/yarn-application_run/ 本节简单描述了一个Application在YARN上的执行流程,希望对初识YARN的同学提供一些帮助。 图1 Application执行流程 客户端提交作业到RM。 RM在调度器中创建一个新的AppAttemp 阅读全文
posted @ 2014-03-13 11:07 南国故人(Wall) 阅读(2295) 评论(3) 推荐(1) 编辑
摘要:概述前面已经分析了RM的状态机,接下来将分析NM的状态机,NM状态机包括Container,Application,LocalizedResource三个,其中Container相对较复杂。现在我们分析Container的状态机。另外3展示了LocalizedResource的状态机图,由于其状态机比较简单,这里不再详细分析,读者可以自行查看相关代码。本文的分析基于社区Apache Hadoop最新的2.3.0版本。NodeManager维护着本节点执行的任务(container),从图1中可以看出其维护了containerID,user,resource等信息。Container的实现类为C 阅读全文
posted @ 2014-03-10 16:25 南国故人(Wall) 阅读(2228) 评论(0) 推荐(0) 编辑
摘要:概述前面已经分析了RM的状态机,接下来将分析NM的状态机,NM状态机包括Container,Application,LocalizedResource三个。首先我们分析Application的状态机。NodeManager维护着本节点执行的Application,从图1中可以看出其维护了user,containers,AppId和状态信息。Application的实现类为ApplicationImpl。图2展示了Application的状态机。图1 Application接口图2 Application状态机图Application状态转换与解释NEW,在NM中,ContainerManage 阅读全文
posted @ 2014-03-10 09:37 南国故人(Wall) 阅读(1785) 评论(0) 推荐(1) 编辑
摘要:摘要RMNode状态机是ResourceManager的四个状态机(RMApp,RMAppAttempt,RMContainer,RMNode)中最简单的一个,状态机如图1所示。RMNode是ResourceManager用于保存NM信息的类,包括NM的机器名,地址,端口,状态等信息。图1 RMNode状态机图RMNode状态与转换详解NEW, 每个NM启动的时候都会通过ResourceTracker协议向RM注册,RM便会创建RMNodeImpl对象,这时RMNodeImpl的状态被初始化为NEW。RUNNING, 在RM处理NM注册期间,新建RMNodeImpl对象后,会创建RMNodeE 阅读全文
posted @ 2014-03-09 16:31 南国故人(Wall) 阅读(910) 评论(0) 推荐(0) 编辑
摘要:摘要RMContainer是RM内部维护的Container状态。事实上,在RM的调度器中,会维护着一个liveContainers列表,保存着所有存活着的Container信息。图1显示RMContainer接口,从中可以看到,RMContainer主要维护了containerID,ApplicationAttemptId,state,reserved等信息。 图1 RMContainer接口作为RMContainer实现类,RMContainerImpl维护了一个状态机,图2是其状态机图。 图2 RMContainer状态机图 相对于RMApp和RMAppAttempt的状态机RMCont 阅读全文
posted @ 2014-03-09 14:40 南国故人(Wall) 阅读(1460) 评论(0) 推荐(1) 编辑
摘要:摘要本文详细描述RMAppAttempt状态机内的状态与其转换关系,分析的代码基于Apache社区Hadoop最新的2.3.0版本。RMAppAttempt状态机在RM中,一个RMApp可能对于一到多个RMAppAttempt,即假如RMApp的第一个RMAppAttempt失败后,RM会根据配置启动新的RMAppAttempt。RMAppAttempt内部维护了进度,运行的机器信息,起始时间,URL等信息。其中最复杂的信息是RMAppAttempt的状态机信息。 private static final StateMachineFactory stateMachineFacto... 阅读全文
posted @ 2014-03-07 20:15 南国故人(Wall) 阅读(1940) 评论(0) 推荐(0) 编辑
摘要:概述 Apache Hadoop 2.0在Hadoop 1.0基础上做了许多的重构工作,代码上的重构最大的变化在于引入状态机处理各个角色的状态与变迁,使用状态机是得代码结构更加清晰,方便异步处理各种操作。对于Yarn集群的维护者来说,熟悉这些状态机的流程是非常基本的要求。Hadoop 2.0当前包含十个状态机,分别是:ResourceManager下RMApp,RMAppAttempt,RMContainer,RMNode;NodeManager下的Application,Container,LocalizedResource;MapReduce下的Job,Task,TaskAttempt。笔 阅读全文
posted @ 2014-03-07 15:29 南国故人(Wall) 阅读(2246) 评论(0) 推荐(0) 编辑
摘要:原文见 http://xiguada.org/hadoop-2-x-compile/ 这些问题是2013年初整理的,不过到目前为止,即使最新的hadoop2.0系列,编译总体上变化不大,因此还能适用。 执行命令: mvn package -Pdist,native -DskipTests -Dtar 阅读全文
posted @ 2014-02-23 20:43 南国故人(Wall) 阅读(4588) 评论(0) 推荐(0) 编辑
摘要:原文链接 http://xiguada.org/yarn_some_question/ ‎ 1. NodeManager是如何Kill掉Container的呢? 答,在DefaultContainerExecutor中, a. 使用命令行kill一个app后,ContainerLaunch中的han 阅读全文
posted @ 2014-02-23 20:33 南国故人(Wall) 阅读(5947) 评论(0) 推荐(0) 编辑
摘要:RM状态存储与还原机制详解转载请注明原始链接http://www.cnblogs.com/shenh062326/p/3562199.html。摘要 本文基于Apache Hadoop社区最新release版本2.3.0编写,社区从2.3.0开始支持ResourceManager的HA,已经实现的功能包括RM状态信息的存储与还原,客户端(clientToRM, AMToRM, NMToRM)实现RPC重试机制,增加Active与Standby RM角色,支持手动切换Active与Standby RM,还不支持RM的热备(自动主备切换),不支持RM切换后正在运行运行的Container不被Ki. 阅读全文
posted @ 2014-02-23 17:53 南国故人(Wall) 阅读(2824) 评论(4) 推荐(0) 编辑
摘要:云梯开发人员在云梯Yarn集群的搭建和维护过程中做了许多工作,本文选择这期间部分较为典型的问题,通过对这些问题的分析和解决方案,为大家分享分布式系统问题调查的经验。调查的问题1. 2013年初引入社区0.23时,调查ResourceManager运行过程汇总突然挂掉的问题现象:监控报警,线上运行的RM突然挂掉,RM异常日志如下,2012-12-17 17:20:28,294 FATAL org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error in handling event type APP_REMOVED t 阅读全文
posted @ 2014-02-15 20:09 南国故人(Wall) 阅读(3945) 评论(1) 推荐(1) 编辑
摘要:1. White Elephant是LinkedIn开源的一套Hadoop 作业日志收集器和展示器,使用mapreduce作业解析jobhistory日志,得到每个用户使用的资源情况,并通过网页展示。基于 Hadoop 1.0.3,Hadoop 2.0不支持。2. hadoop-job-analyzer解析Hadoop作业,收集用户指定的信息,并把输出发送给监控以可视化方式展示和分析,也是基于hadoop1.0,不支持hadoop2.0。3.Replephant是一个Clojure库,执行perl脚本分析Hadoop集群使用情况并产生使用报告。4.hRavenTwitter开源,收集Hadoo 阅读全文
posted @ 2014-02-12 20:18 南国故人(Wall) 阅读(848) 评论(0) 推荐(0) 编辑
摘要:White Elephant 是一个Hadoop日志收集器和展示器,它提供了用户角度的Hadoop集群可视化。White Elephant 是全球最大的职业社交网站Linkedin开发的一套分析Hadoop作业日志的系统,完全开源。代码在GitHub上的链接https://github.com/linkedin/white-elephant。不过White Elephant当前只支持hadoop1.0系列的jobhistory解析,暂时不支持hadoop2.0系列的版本。 快速入门你可以在GitHub上的White Elephant项目check out代码,或者下载最新的snapshot版本 阅读全文
posted @ 2014-02-11 18:00 南国故人(Wall) 阅读(3778) 评论(0) 推荐(0) 编辑
摘要:继上篇文章验证Cloudera RM HA功能后,现在开始分析Cloudera RM HA的原理。 设计目标主要目的是为了解决两种问题 计划外的机器挂掉 计划内的如软件和硬件升级等. 架构流程:两个RM, 启动的时候都是standby, 进程启动以后状态未被加载, 转换为active后才会加载相应的状态并启动服务. RM的状态通过配置可以存储在zookeeper, HDFS上。Standby转换到active可以通过命令或开启auto failover。 RM 的作业信息存储在ZK的/rmstore下,Active RM向这个目录写App信息。 RM启动的时候会通过向ZK的/hadoop-ha 阅读全文
posted @ 2014-01-22 11:19 南国故人(Wall) 阅读(2837) 评论(0) 推荐(0) 编辑
摘要:简介: 最新的Cloudera CDH5.0.0 beta版本已经支持RM的HA, 笔者为此简单验证了RM HA的功能. 后续将继续分析其HA的原理,以及其与社区RM HA的区别.集群部属与RM failover功能性验证硬件准备 四台机器, bj1, bj3, bj4, bj5 准备好相应的环境(包括ssh互通, java环境). 角色说明, bj1为rm1, bj3为rm2, bj4和bj4为slave. Zookeeper部属在bj1上. Hadoop版本准备http://archive.cloudera.com/cdh5/cdh/5/ 下载相应的CDH5版本hadoop-2.2.0-c 阅读全文
posted @ 2014-01-22 09:50 南国故人(Wall) 阅读(1840) 评论(0) 推荐(0) 编辑
摘要:我的一篇文章 已经发表在程序员2013年11月刊中, 原文链接为http://www.csdn.net/article/2013-12-04/2817706--YARN. 欢迎大家阅读与评论! 阅读全文
posted @ 2014-01-02 10:13 南国故人(Wall) 阅读(411) 评论(0) 推荐(0) 编辑
摘要:Hortworks Hadoop生态圈 阅读全文
posted @ 2013-10-20 15:02 南国故人(Wall) 阅读(2728) 评论(0) 推荐(0) 编辑
摘要:最新hadoop资讯 阅读全文
posted @ 2013-05-19 11:05 南国故人(Wall) 阅读(241) 评论(0) 推荐(0) 编辑
摘要:本文介绍了NodeManager的启动流程与服务. 阅读全文
posted @ 2012-11-24 13:59 南国故人(Wall) 阅读(3326) 评论(0) 推荐(0) 编辑