MapReduce是基于YARN运行的,即没有YARN”无法”运行MapReduce程序 (并不是完全但是看作是这样的)
导入
分布式计算概述
分布式计算概述http://t.csdnimg.cn/LOW1p
MapReduce概述
MapReduce概述http://t.csdnimg.cn/WwMB8
YARN概述
分布式资源调度 - YARN
资源调度
资源:服务器硬件资源,如:CPU、内存、硬盘、网络等。
资源调度:管控服务器硬件资源,提供更好的利用率。
分布式资源调度:管控整个分布式服务器集群的全部资源,整合进行统一调度。
意义:
对于资源的利用,有规划、有管理的调度资源使用,是效率最高的方式
程序的资源调度
将服务器上的资源进行划分 对程序实行申请制度,需要多少申请多少
提高资源使用率
对于服务器集群亦可使用这种思路 调度整个集群的资源,如下
YARN的资源调度
YARN 管控整个集群的资源进行调度, 那么应用程序在运行时,就是在YARN的监管(管理)下去运行的。
这就像:全部资源都是公司(YARN)的,由公司分配给个人(具体的程序)去使用。
比如,一个具体的MapReduce程序。 我们知道, MapReduce程序会将任务分解为若干个Map任务和Reduce任务。
假设,有一个MapReduce程序, 分解了3个Map任务,和1个Reduce任务,那么如何在YARN的监管(管理)下运行呢?
<iframe allowfullscreen="true" data-mediaembed="csdn" frameborder="0" id="woChBnGL-1719820316523" src="https://live.csdn.net/v/embed/405210"></iframe>QQ202471-153344
YARN架构
YARN,主从架构,有2个角色
主(Master)角色:ResourceManager
从(Slave) 角色:NodeManager
参考hdfs:
HDFS, 主从架构,有2个角色 主(Master)角色:NameNode 从(Slave)角色 :DataNode
ResourceManager:整个集群的资源调度者, 负责协调调度各个程序所需的资源。
NodeManager:单个服务器的资源调度者,负责调度单个服务器上的资源提供给应用程序使用。
如何实现单个服务器上精准分配如下的硬件资源呢?
开辟的空间,称之为:容器
NodeManager预先占用这一部分资源,然后将这一部分资源提供给程序使用。
YARN容器
NodeManager在服务器上构建一个容器(提前占用资源,类似集装箱的概念) 然后将容器的资源提供给程序使用 程序运行在容器(集装箱)内,无法突破容器的资源限制。
辅助架构
YARN辅助角色
YARN的架构中除了核心角色,即:
ResourceManager:集群资源总管家
NodeManager:单机资源管家
还可以搭配2个辅助角色使得YARN集群运行更加稳定
代理服务器(ProxyServer):Web Application Proxy Web应用程序代理
历史服务器(JobHistoryServer): 应用程序历史信息记录服务
Web应用代理(Web Application Proxy)
代理服务器,即Web应用代理是 YARN 的一部分。默认情况下,它将作为资源管理器(RM)的一部分运行,但是可以配置为在独立模式下运行。使用代理的原因是为了减少通过 YARN 进行基于网络的攻击的可能性。
这是因为, YARN在运行时会提供一个WEB UI站点(同HDFS的WEB UI站点一样)可供用户在浏览器内查看YARN的运行信息。
对外提供WEB 站点会有安全性问题, 而代理服务器的功能就是最大限度保障对WEB UI的访问是安全的。
比如:
警告用户正在访问一个不受信任的站点。
剥离用户访问的Cookie等。
开启代理服务器,可以提高YARN在开放网络中的安全性 (但不是绝对安全只能是辅助提高一些)
代理服务器默认集成在了ResourceManager中 也可以将其分离出来单独启动,如果要分离代理服务器(参考MapReduce & YARN 的部署:待加,请自行搜索)
1. 在yarn-site.xml中配置 yarn.web-proxy.address 参数即可
2.并通过命令启动它即可 $HADOOP_YARN_HOME/sbin/yarn-daemon.sh start proxyserver
JobHistoryServer历史服务器
历史服务器的功能很简单: 记录历史运行的程序的信息以及产生的日志并提供WEB UI站点供用户使用浏览器查看。
程序看日志不是日常操作吗? 为何需要一个单独的历史服务器? 回答这个问题要从YARN的运行机制说起。
<iframe allowfullscreen="true" data-mediaembed="csdn" frameborder="0" id="0koeCCJ1-1719821501627" src="https://live.csdn.net/v/embed/405214"></iframe>统一收集到HDFS,由历史服务器托管为WEB UI供用户在浏览器统一查看.。
JobHistoryServer历史服务器功能:
提供WEB UI站点,供用户在浏览器上查看程序日志
可以保留历史数据,随时查看历史运行程序信息
JobHistoryServer需要配置:
开启日志聚合,即从容器中抓取日志到HDFS集中存储
配置历史服务器端口和主机
详细历史服务器配置和启动,参考MapReduce & YARN 的部署:待加,请自行搜索
标签:程序,调度,介绍,MapReduce,YARN,服务器,资源 From: https://blog.csdn.net/qq_65231448/article/details/140101884