hadoop HDFS分布式计算概述,MapReduce概述,YARN概述

1、分布式计算概述

1.1、什么是(数据)计算

我们一直在提及:分布式计算, 分布式暂且不论, “计算”到底是指什么呢?
在这里插入图片描述

大数据体系内的计算, 举例:

  • 销售额统计、区域销售占比、季度销售占比
  • 利润率走势、客单价走势、成本走势
  • 品类分析、消费者分析、店铺分析

等等一系列,基于数据得出的结论。 这些就是我们所说的计算。

1.2、分布式(数据)计算

分布式计算:顾名思义,即以分布式的形式完成数据的统计,得到需要的结果。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

1.2.1、分散汇总模式

分散->汇总模式:

  1. 将数据分片,多台服务器各自负责一部分数据处理
  2. 然后将各自的结果,进行汇总处理
  3. 最终得到想要的计算结果

生活中的“人口普查”,就是典型的分散汇总的分布式统计模式。

在这里插入图片描述

1.2.2、中心调度模式

中心调度->步骤执行模式:

  1. 由一个节点作为中心调度管理者
  2. 将任务划分为几个具体步骤
  3. 管理者安排每个机器执行任务
  4. 最终得到结果数据

生活中的各类项目的:项目经理 和 项目成员
就是这种模式,一个管理分配任务,其余人员领取任务工作。
在这里插入图片描述
在这里插入图片描述

2、MapReduce概述

MapReduce 即Hadoop内提供的进行分布式计算的组件。

2.1、分布式计算框架 - MapReduce

MapReduce是“分散->汇总”模式的分布式计算框架,可供开发人员开发相关程序进行分布式数据计算。

MapReduce提供了2个编程接口:

  • Map
  • Reduce

其中

  • Map功能接口提供了“分散”的功能, 由服务器分布式对数据进行处理。
  • Reduce功能接口提供了“汇总(聚合)”的功能,将分布式的处理结果汇总统计。

用户如需使用MapReduce框架完成自定义需求的程序开发,只需要使用Java、Python等编程语言,实现Map Reduce功能接口即可。

2.2、MapReduce执行原理

  • 假设有如下文件,内部记录了许多的单词。且已经开发好了一个MapReduce程序,功能是统计每个单词出现的次数。
    在这里插入图片描述

  • 假定有4台服务器用以执行MapReduce任务
    可以3台服务器执行Map,1台服务器执行Reduce。

在这里插入图片描述

2.3、MapReduce的运行机制

  • 将要执行的需求,分解为多个Map Task和Reduce Task。
  • 将Map Task 和 Reduce Task分配到对应的服务器去执行。

3、YARN概述

3.1、YARN & MapReduce

MapReduce是基于YARN运行的,即没有YARN”无法”运行MapReduce程序。

YARN 即Hadoop内提供的进行分布式资源调度的组件。

3.2、资源调度

对于资源的利用,有规划、有管理的调度资源使用,是效率最高的方式。
在这里插入图片描述

3.2.1、程序的资源调度

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

3.2.2、YARN的资源调度

YARN 管控整个集群的资源进行调度, 那么应用程序在运行时,就是在YARN的监管(管理)下去运行的。
这就像:全部资源都是公司(YARN)的,由公司分配给个人(具体的程序)去使用。

比如,一个具体的MapReduce程序。
我们知道, MapReduce程序会将任务分解为若干个Map任务和Reduce任务。

假设,有一个MapReduce程序, 分解了3个Map任务,和1个Reduce任务,那么如何在YARN的监管(管理)下运行呢?
在这里插入图片描述
在这里插入图片描述

3.3、程序如何在YARN内运行

  • 程序向YARN申请所需资源。
  • YARN为程序分配所需资源供程序使用。

4、YARN架构

4.1、核心架构

4.1.1、YARN架构

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

  • 主(Master)角色:ResourceManager
    整个集群的资源调度者, 负责协调调度各个程序所需的资源。
  • 从(Slave) 角色:NodeManager
    单个服务器的资源调度者,负责调度单个服务器上的资源提供给应用程序使用。
    在这里插入图片描述
    在这里插入图片描述
4.1.2、YARN容器

容器(Container)

  • NodeManager预先占用这一部分资源。
  • 然后将这一部分资源提供给程序使用。

在这里插入图片描述
在这里插入图片描述

什么是YARN的容器?

  • 容器(Container)是YARN的NodeManager在所属服务器上分配资源的手段
  • 创建一个资源容器,即由NodeManager占用这部分资源
  • 然后应用程序运行在NodeManager创建的这个容器内
  • 应用程序无法突破容器的资源限制

4.2、辅助架构

YARN的架构中除了核心角色,即:

  • ResourceManager:集群资源总管家
  • NodeManager:单机资源管家

还可以搭配2个辅助角色使得YARN集群运行更加稳定

  • 代理服务器(ProxyServer):Web Application Proxy Web应用程序代理
  • 历史服务器(JobHistoryServer): 应用程序历史信息记录服务
4.2.1、Web应用代理(Web Application Proxy)

代理服务器,即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。

4.2.2、JobHistoryServer历史服务器

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

程序看日志不是日常操作吗? 为何需要一个单独的历史服务器?
回答这个问题要从YARN的运行机制说起。

在这里插入图片描述在这里插入图片描述

JobHistoryServer历史服务器功能:

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

JobHistoryServer需要配置:

  • 开启日志聚合,即从容器中抓取日志到HDFS集中存储
    在这里插入图片描述

  • 配置历史服务器端口和主机
    在这里插入图片描述

结束!!!!!!!
hy:36


									道德判断,永远要先己后人。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值