网站建设工作总结范文,创建企业网站,wordpress 2.5,图书管理系统网站开发绪论目录
一、分布式计算
二、分布式资源调度
2.1 什么是分布式资源调度
2.2 yarn的架构
2.2.1 核心架构
2.2.2 辅助架构 前面我们提到了Hadoop的三大核心功能#xff1a;分布式存储、分布式计算和资源调度#xff0c;分别由Hadoop的三大核心组件可以担任。
即HDFS是分布式…目录
一、分布式计算
二、分布式资源调度
2.1 什么是分布式资源调度
2.2 yarn的架构
2.2.1 核心架构
2.2.2 辅助架构 前面我们提到了Hadoop的三大核心功能分布式存储、分布式计算和资源调度分别由Hadoop的三大核心组件可以担任。
即HDFS是分布式存储组件MapReduce是分布式计算组件Yarn则是资源调度组件。
本章我们就分布式计算和资源调度进行简单讲解。
一、分布式计算 那么什么是分布式计算呢 以前我们开发过程中要进行计算通常都是在一台电脑上完成的。这从某种意义上说计算的数据量不算特别大。单台机器能够胜任。
但是假如现在有一个1PB的数据需要进行计算那么单台机器能完成吗先不说存储的事情就算能完成拿现在最强性能的cpu那也要计算到猴年马月了。
所以单台不够我们就多台机器同时计算这就衍生出了分布式计算。 分布式计算的两种模式 分散汇总模式
1. 将数据分片多台服务器各自负责一部分数据处理
2. 然后将各自的结果进行汇总处理
3. 最终得到想要的计算结果 中心调度-步骤执行模式
中心调度、步骤执行模式
1. 由一个节点作为中心调度管理者
2. 将任务划分为几个具体步骤
3. 管理者安排每个机器执行任务
4. 最终得到结果数据 中心调度-步骤执行模式 MapReduce MapReduce是“分散-汇总”模式的分布式计算框架可供开发人员开发相关程序进行分布式数据计算。
MapReduce提供了2个编程接口Map和Reduce
Map功能接口提供了“分散”的功能 由服务器分布式对数据进行处理
Reduce功能接口提供了“汇总聚合”的功能将分布式的处理结果汇总统计
用户如需使用MapReduce框架完成自定义需求的程序开发。只需要使用Java、Python等编程语言实现Map Reduce功能接口即可。
注MapReduce尽管可以通过Java、Python等语言进行程序开发但当下年代基本没人会写它的代码了因为太过时了。 尽管MapReduce很老了但现在仍旧活跃在一线主要是Apache Hive框架非常火而Hive底层就是使用的MapReduce。 所以对于MapReduce的代码开发课程会简单扩展一下但不会深入讲解对MapReduce的底层原理会放在Hive之后基于Hive做深入分析。
MapReduce的运行机制
将要执行的需求分解为多个Map Task和Reduce Task将Map Task 和 Reduce Task分配到对应的服务器去执行 二、分布式资源调度
MapReduce是基于YARN运行的即没有YARN”无法”运行MapReduce程序。
这里“无法”是加了引号的这是因为绝大多数的场景都是通过yarn运行MapReduce任务的不是说没有yarn完全不行而是非常不方便。离开了它需要我们自行管理资源自行管理就显得麻烦了。所以95%以上的用户都会选择使用YARN运行MapReduce任务。
2.1 什么是分布式资源调度
那么Yarn作为分布式资源调度组件它具体有啥作用呢换句话说什么是资源调度 我们为什么需要资源调度 服务器会运行多个程序 每个程序对资源CPU内存等的使用都不同
程序没有节省的概念有多少就会用多少。
所以为了提高资源利用率进行调度就非常有必要了。 YARN 管控整个集群的资源进行调度 那么应用程序在运行时就是在YARN的监管管理下去运行的。
这就像全部资源都是公司YARN的由公司分配给个人具体的程序去使用。比如一个具体的MapReduce程序。 我们知道 MapReduce程序会将任务分解为若干个Map任务和Reduce任务。假设有一个MapReduce程序 分解了3个Map任务和1个Reduce任务那么如何在YARN的监管管理下运行呢
我们直接看下面的动图 2.2 yarn的架构
yarn分为核心架构和辅助架构
2.2.1 核心架构
类比于HDFS:
HDFS 主从架构有2个角色
主Master角色NameNode从Slave角色 DataNode YARN主从架构有2个角色
主Master角色ResourceManager从Slave 角色NodeManager ResourceManager整个集群的资源调度者 负责协调调度各个程序所需的资源
NodeManager单个服务器的资源调度者负责调度单个服务器上的资源提供给应用程序使用。 如何实现服务器上精准分配如下的硬件资源呢
答开辟的空间称之为容器 2.2.2 辅助架构
Yarn的架构中处理核心角色ResourceManager和NodeManager外还可以搭配2个辅助角色使得YARN集群运行更加稳定。
代理服务器(ProxyServer)Web Application Proxy Web应用程序代理
历史服务器(JobHistoryServer) 应用程序历史信息记录服务 代理服务器 代理服务器即Web应用代理是 YARN 的一部分。默认情况下它将作为资源管理器(RM)的一部分运行但是可以配置为在独立模式下运行。使用代理的原因是为了减少通过 YARN 进行基于网络的攻击的可能性。
这是因为 YARN在运行时会提供一个WEB UI站点同HDFS的WEB UI站点一样可供用户在浏览器内查看YARN的运行信息。 对外提供WEB 站点会有安全性问题 而代理服务器的功能就是最大限度保障对WEB UI的访问是安全的。
比如
警告用户正在访问一个不受信任的站点剥离用户访问的Cookie等开启代理服务器可以提高YARN在开放网络中的安全性 但不是绝对安全只能是辅助提高一些
代理服务器默认集成在了ResourceManager中
也可以将其分离出来单独启动如果要分离代理服务器
1. 在yarn-site.xml中配置 yarn.web-proxy.address 参数即可 部署环节会使用到 2. 并通过命令启动它即可 $HADOOP_YARN_HOME/sbin/yarn-daemon.sh start proxyserver部署环节会使用到 历史服务器 历史服务器的功能很简单 记录历史运行的程序的信息以及产生的日志并提供WEB UI站点供用户使用浏览器查看。
程序看日志不是日常操作吗 为何需要一个单独的历史服务器
回答这个问题要从YARN的运行机制说起。 具体如何使用我们将在下一章节yarn部署讲解。✨