前言
Yarn架构是一个用于管理和调度Hadoop集群资源的系统。它是Hadoop生态系统的一部分,主要用于解决Hadoop中的资源管理问题。
通过使用Yarn架构,Hadoop集群中的不同应用程序可以共享集群资源,并根据需要动态分配和回收资源。这种灵活的资源管理能力可以提高集群的利用率和性能。
一、核心架构
1、YARN架构
- YARN,主从架构,有2个角色
- 主(Master)角色:ResourceManager
- 从(Slave)角色:NodeManager
ResourceManager:整个集群的资源调度者,负责协调调度各个程序所需的资源
NodeManager:单个服务器的资源调度者,负责调度单个服务器上的资源提供给应用程序使用
那是如何实现服务器上精准分配如上的硬件资源呢?
开辟的空间,称之为:容器
2、容器(Container)
NodeManager预先占用这一部分资源,然后将这一部分资源提供给程序使用
- NodeManager在服务器上构建一个容器(提前占用资源,类似集装箱的概念)
- 然后将容器的资源提供给程序使用
- 程序运行在容器(集装箱)内,无法突破容器的资源限制
二、辅助架构
- 代理服务器(ProxyServer):Web Application Proxy Web 应用程序代理
- 历史服务器(JobHistoryServer):应用程序历史信息记录服务
1、Web应用代理(Web Application Proxy)
代理服务器,即Web应用代理是YARN的一部分。默认情况下,它将作为资源管理器(RM)的一部分运行,但是可以配置为在独立模式下运行。使用代理的原因是为了减少通过YARN进行基于网络的攻击的可能性。
这是因为YARN在运行时提供一个WEB UI站点(同HDFS的WEB UI站点一样)可供用户在浏览器内查看YARN的运行信息。
对外提供WEB站点会有安全性问题,而代理服务器的功能就是最大限度保障对WEB UI 的访问是安全的。比如:
- 警告用户正在访问一个不受信任的站点
- 剥夺用户访问的Cookie等
开启代理服务器,可以提高YARN在开放网络中的安全性(但不是绝对安全,只能是辅助提高一些)
2、JobHistoryServer历史服务器
历史服务器,记录历史运行的程序的信息以及生产的日志并提供WEB UI 站点供用户使用浏览器查看
每台服务器里的每个容器都有运行日志,将运行日志统一收集到HDFS,由历史服务器托管为WEB UI供用户在浏览器统一查看
JobHistoryServer历史服务器功能:
- 提供WEB UI 站点,供用户在浏览器上查看程序日志
- 可以保留历史数据,随时查看历史运行程序信息
web应用代理与历史服务器都需要配置,详细的配置和启动可以阅读部署YARN集群