文章目录
- 1. 概述
- 2. YARN基础架构
- 3. 辅助角色
- 3.1 Web应用代理(Web Application Proxy)
- 3.2 JobHistoryServer历史服务器
1. 概述
什么是资源调度?为什么需要资源调度?
- 资源,即服务器的硬件资源,如:CPU、内存、网络等;资源调度是为了管控服务器的硬件资源,提供更好的利用率;分布式资源调度是管控这个分布式服务器集群的全部资源,整合进行统一的调度
- 在分布式系统中,会有很多运行的程序,每个程序对资源的使用都是不同的,程序没有节省资源的概率,一个本身不需要太大资源的程序可能占用较多的资源,导致资源利用率低,所以为了提高资源使用率,进行调度就非常有必要了,对程序实行申请制度,需要多少就申请多大
YARN是Hadoop内提供的分布式资源调度的组件,作用是调度整个服务器集群的资源统一管理。负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序相当于操作系统上的应用程序。YARN用来调度资源给MapReduce分配和管理运行资源,所以MapReduce需要YARN才能执行
2. YARN基础架构
YARN架构类似HDFS都是主从架构模式,如下图:
HDFS, 主从架构,有2个角色
- 主(Master)角色:NameNode
- 从(Slave)角色 :DataNode
YARN,主从架构,有2个角色
- 主(Master)角色:ResourceManager
- 从(Slave) 角色:NodeManager
YARN主要由ResourceManager、NodeManager组件组成,ResourceManager是整个集群的资源调度者, 负责协调调度各个程序所需的资源;NodeManager是单个服务器的资源调度者,负责调度单个服务器上的资源提供给应用程序使用。
NodeManager通过容器的方式为应用程序提供精准的资源:
- 首先NodeManager在服务器上构建一个容器(包含运行程序所需的资源)
- 然后将容器的资源提供提供给程序使用
- 程序运行在容器内,无法突破容器的资源限制
3. 辅助角色
在YARN的架构中除了核心组件,还可以搭配2个辅助角色使得YARN集群运行更加稳定。
- 代理服务器(ProxyServer):Web Application Proxy Web应用程序代理
- 历史服务器(JobHistoryServer)为应用程序历史信息记录服务
3.1 Web应用代理(Web Application Proxy)
代理服务器,即Web应用代理是 YARN 的一部分。默认情况下,它将作为资源管理器(RM)的一部分运行,但是可以配置为在独立模式下运行。使用代理的原因是为了减少通过 YARN 进行基于网络的攻击的可能性。这是因为, YARN在运行时会提供一个WEB UI站点(同HDFS的WEB UI站点一样)可供用户在浏览器内查看YARN的运行信息
对外提供WEB 站点会有安全性问题, 而代理服务器的功能就是最大限度保障对WEB UI的访问是安全的。 比如:
- 警告用户正在访问一个不受信任的站点
- 剥离用户访问的Cookie等
开启代理服务器,可以提高YARN在开放网络中的安全性 (但不是绝对安全只能是辅助提高一些)
3.2 JobHistoryServer历史服务器
历史服务器的是记录历史运行的程序的信息以及产生的日志并提供WEB UI站点供用户使用浏览器查看。
- 提供WEB UI站点,供用户在浏览器上查看程序日志
- 可以保留历史数据,随时查看历史运行程序信息