Hadoop三大组件之Yarn

文章目录

  • 1. 概述
  • 2. YARN基础架构
  • 3. 辅助角色
    • 3.1 Web应用代理(Web Application Proxy)
    • 3.2 JobHistoryServer历史服务器

1. 概述

什么是资源调度?为什么需要资源调度?

  1. 资源,即服务器的硬件资源,如:CPU、内存、网络等;资源调度是为了管控服务器的硬件资源,提供更好的利用率;分布式资源调度是管控这个分布式服务器集群的全部资源,整合进行统一的调度
  2. 在分布式系统中,会有很多运行的程序,每个程序对资源的使用都是不同的,程序没有节省资源的概率,一个本身不需要太大资源的程序可能占用较多的资源,导致资源利用率低,所以为了提高资源使用率,进行调度就非常有必要了,对程序实行申请制度,需要多少就申请多大

YARN是Hadoop内提供的分布式资源调度的组件,作用是调度整个服务器集群的资源统一管理。负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序相当于操作系统上的应用程序。YARN用来调度资源给MapReduce分配和管理运行资源,所以MapReduce需要YARN才能执行

2. YARN基础架构

YARN架构类似HDFS都是主从架构模式,如下图:
Hadoop三大组件之Yarn_第1张图片

HDFS, 主从架构,有2个角色

  • 主(Master)角色:NameNode
  • 从(Slave)角色 :DataNode

Hadoop三大组件之Yarn_第2张图片

YARN,主从架构,有2个角色

  • 主(Master)角色:ResourceManager
  • 从(Slave) 角色:NodeManager

Hadoop三大组件之Yarn_第3张图片

YARN主要由ResourceManager、NodeManager组件组成,ResourceManager是整个集群的资源调度者, 负责协调调度各个程序所需的资源;NodeManager是单个服务器的资源调度者,负责调度单个服务器上的资源提供给应用程序使用。

NodeManager通过容器的方式为应用程序提供精准的资源:

  1. 首先NodeManager在服务器上构建一个容器(包含运行程序所需的资源)
  2. 然后将容器的资源提供提供给程序使用
  3. 程序运行在容器内,无法突破容器的资源限制

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的运行信息
Hadoop三大组件之Yarn_第4张图片对外提供WEB 站点会有安全性问题, 而代理服务器的功能就是最大限度保障对WEB UI的访问是安全的。 比如:

  • 警告用户正在访问一个不受信任的站点
  • 剥离用户访问的Cookie等

开启代理服务器,可以提高YARN在开放网络中的安全性 (但不是绝对安全只能是辅助提高一些)

3.2 JobHistoryServer历史服务器

历史服务器的是记录历史运行的程序的信息以及产生的日志并提供WEB UI站点供用户使用浏览器查看。

  • 提供WEB UI站点,供用户在浏览器上查看程序日志
  • 可以保留历史数据,随时查看历史运行程序信息

你可能感兴趣的:(hadoop,hadoop,大数据,分布式)