Hadoop YARN学习笔记

一.Hadoop概述

Hadoop处理的问题和关系型数据库的对比:


一个MapReduce作业包含了输入数据,MapReduce程序和配置信息,由map任务和reduce任务两类任务构成。Hadoop为每个分片(split,默认128MB)创建一个map任务,来处理分片中的每条记录。Hadoop优先在有HDFS数据的节点上运行map任务,可以节省宽带,获得最佳性能,其次在同一机架上的节点运行。


clipboard.png

注意:map任务的输出结果是保存到本地磁盘,而不是HDFS,当作业完成后,map的输出结果即可删除.


clipboard.png

二、YARN

YARN在在Hadoop框架中的位置


rwerawtr.png

YARN的核心服务有资源管理器(Resource Manager)和节点管理器(Node Manager)构成


sdfsgsg.png
步骤说明:

1.用 户 向 YARN 中 提 交 应 用 程 序( Application Master 程 序、 启 动Application Master 的命令、用户程序等);
2.ResourceManager 为该应用程序分配第一个 Container,并与对应的 NodeManager 通信,要求它在这个 Container 中启动应用程序的 ApplicationMaster;
3.ApplicationMaster 首 先 向 ResourceManager 注 册, 这 样 用 户 可 以 直 接 通 过ResourceManager 查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束,即重复步骤 4~7;
4.ApplicationMaster 采用轮询的方式通过 RPC 协议向ResourceManager 申请和领取资源;
5.一旦 ApplicationMaster 申请到资源后,便与对应的 NodeManager 通信,要求它启动任务;
6.NodeManager 为任务设置好运行环境(包括环境变量、JAR 包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务;
7.各个任务通过某个 RPC 协议向 ApplicationMaster 汇报自己的状态和进度,以让 ApplicationMaster 随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务;在应用程序运行过程中,用户可随时通过 RPC 向 ApplicationMaster 查询应用程序的当前运行状态。
8.应用程序运行完成后,ApplicationMaster 向 ResourceManager 注销并关闭自己。


clipboard.png

三、Hadoop RPC

RPC Server主要使用了线程池、事件驱动和Reactor设计模式等提高并发处理能力的技术。

clipboard.png

说明:

1.整个Server只有一个Listener线程,统一负责监听来自客户端的连接请求,当监听到新的客户端请求到达后,Server采用轮询的方式从线程池(Reader Pool)中选择一个Reader线程进行处理,Reader来接收客户端连接的RPC请求;
2.考虑到某些函数调用返回结果很大或者网络速度过慢,可能难以将结果一次性发送到客户端,此时 Handler 将尝试着将后续发送任务交给 Responder 线程。

Hadoop RPC的主要参数:

1.Reader 线程数目。 默认为1,可通过ipc.server.read.threadpool.size配置;
2.每个 Handler 线程对应的最大 Call 数目。ipc.server.handler.queue.size配置,默认值是100,如果 Handler 数目为 10,则整个 Call 队列(即共享队列 callQueue)最大长度为:100×10=1000;
3.Handler 线程数目。的 Handler 数目分别由参数 yarn.resourcemanager.resource-tracker.client.thread-count 和 dfs.namenode.service.handler.count 指定,默认值分别为 50 和 10,当集群规模较大时,这两个参数值会大大影响系统性能。
4.客户端最大重试次数。数由参数 ipc.client.connect.max.retries 指定,默认值为 10,也就是会连续尝试 10 次(每两次之间相隔 1 秒)。

YARN application用到的3个RPC协议,ApplicationClientProtocol,ApplicationMasterProtocol和ContainerManagementProtocol


clipboard.png

四、ResourceManager

主要职责:
1.与客户端交互,处理来自客户端的请求;
2.启动和管理ApplicationMaster,并在失败的时候重启它;
3.管理NodeManger,接收来自NodeManager的心跳信息,并向NodeManager下达管理命令;
4.资源管理和调度,接收来自ApplicationMaster的资源请求,并分配资源。
ResourceManager的内部架构:


clipboard.png

五、Hadoop HA基本框架:

Hadoop HA采用共享存储的HA解决方案,即Active节点不断地将信息写入到共享存储系统,而StandBy节点不断地读取这些信息,从而保持二者的内存信息同步。HA的主备切换分为手动模式和自动模式。
1.手动模式框架:


clipboard.png

2.自动模式框架:


clipboard.png
说明:

ZKFailoverCOntroller是基于Zookeeper实现切换控制,ActiveStandbyElector负责与Zookeeper集群交互,通过尝试获取全局锁,以判断所管理的Master是进入Active还是进入Standby状态,HealthMonitor负责监控各个Master的状态,以根据它们状态进行切换。Zookeeper是通过维护一把全局锁控制整个集群有且仅有一个Active Master,避免脑裂。

六、YARN资源调度

YARN采用了双层资源调度模型
第一层:ResourceManager中的资源调度器将资源分配给各个ApplicationMaster·;
第二层:ApplicationMaster再进一步将资源分配给内部的各个task。


clipboard.png

YARN有三种调度器可用:FIFO调度器(First IN First Out Scheduler)、容量调度器(Capacity Scheduler)、公平调度器(Fair Scheduler)


clipboard.png
clipboard.png
clipboard.png

clipboard.png

七、NodeManager

NodeManager的主要功能是管理Hadoop集群中的单个计算节点,包括与ResourceManager保持通信、管理COntainer的生命周期、监控每个Container的资源使用情况,追踪节点健康状况、管理日志等。


clipboard.png

1.分布式缓存机制
Hadoop 将文件缓存到各个NodeManager节点的本地磁盘上、当NodeManager收到启动任务请求后,如果文件已经在本地磁盘上,则可以直接运行任务,否则等待文件缓存到本地磁盘后再启动。NodeManager采用LRU算法定期清理过期的缓存文件。

八、Container的生命周期

Container的三个阶段:
1.资源本地化:主要工作是初始化各种服务组件、创建工作目录、从HDFS下载所需的各种资源(文本文件,JAR、可执行文件)等,即主要是前面完成的分布式缓存机制完成的工作。


clipboard.png
clipboard.png

2.Container启动:即ContainersLauncher服务调用插拔式组件ContainerExecutor;


clipboard.png

3.资源清理:即阶段1的逆过程,由ResourceLocalizationService负责。


clipboard.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容

  • 一、HDFS简介 1.1Hadoop2介绍 hadoop1是由HDFS和MapReduce组成,hadoop2由H...
    ahzhaojj阅读 1,069评论 0 0
  • 注:本文是我学习Hadoop权威指南的时候一些关键点的记录,并不是全面的知识点 Hadoop 避免数据丢失的方法:...
    利伊奥克儿阅读 727评论 0 2
  • Zookeeper用于集群主备切换。 YARN让集群具备更好的扩展性。 Spark没有存储能力。 Spark的Ma...
    Yobhel阅读 7,263评论 0 34
  • MapReduce概述 源自于Google的MapReduce论文,发表于2004年12月 Hadoop MapR...
    陌上疏影凉阅读 1,003评论 0 14
  • 岁月匆匆,人生短暂,一路走来,几十多年的风风雨雨中,品味着人间百味,历经了几多悲欢离合?感受过多少爱恨情愁?那洒满...
    千年一梦OK阅读 1,150评论 14 38