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

news/2024/5/20 4:03:11 标签: mapreduce, 大数据, hadoop, hdfs, 分布式

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


									道德判断,永远要先己后人。

http://www.niftyadmin.cn/n/5032407.html

相关文章

Linux面试题

当准备 Linux 面试时,以下是一些可能会遇到的常见 Linux 面试题: 1. 什么是Linux?解释一下Linux操作系统的特点。 2. 什么是Linux内核?Linux内核的作用是什么? 3. 如何在Linux系统上查看当前的IP地址和子网掩码&#…

Learn Prompt-ChatGPT 精选案例:简单介绍

恭喜你! 现在你已经学会了如何编写提示语。本节主要讨论的是如何使用提示语来解决我们在日常或工作中遇到的任务。如果你已经有了一个提示语集,如何决定哪些提示语适合手头的任务?在本节中,我们将通过一些实际例子来给你提供灵感。在挑选案例…

03使用Spring基于XML的方式注册第一个组件

基于XML的方式注册第一个组件 开发步骤 第一步: 创建Maven工程配置生成的pom.xml文件, 添加spring context基础依赖和junit依赖(注意根据Spring官方文档描述,Spring6需要JDK版本17) 当添加Spring的基础依赖spring context之后,Maven会自动关联并引入其他依赖spring aop, spr…

TCP/IP协议栈的心跳、丢包重传、连接超时机制实例详解

大家好,本文结合具体的问题实例,详细讲解一下TCP/IP协议栈的心跳机制、丢包重传机制等内容,给大家提供一个借鉴和参考。 1、问题概述 虽然软件底层模块在网络恢复后能自动重连上服务器,但会议因为网络问题已经退出,需…

内网桌面如何让外网电脑连接?快解析内网映射域名设置

异地电脑远程桌面连接局域网服务器需求场景时,大多人会想到在目标本地的路由器上做端口映射设置。其实路由映射方法只适用于有公网IP的网络环境。当所在联网环境下是内部网络,内网环境下无公网IP或无公网IP权限时,路由映射方法就不生效了&…

l8-d19 广播与组播

一、广播 1.概念 数据包发送方式只有一个接受方,称为单播 如果同时发给局域网中的所有主机,称为广播 只有用户数据报(使用UDP协议)套接字才能广播 广播地址 一个网络内主机号全为1的IP地址为广播地址 发到该地址的数据包被所有的主机接收 255.25…

数据挖掘一般框架

1. 数据探索 1.1 数据整体情况介绍 panda库中的to_datatime可以将时间戳转换成日常的时间格式 1.2 数据概况 查看数据量大小 查看前五行 查看每列属性含义 1.3 探索性数据分析(EDA) 1.3.1 缺失值可视化 利用 missingno 包 1.3.2 查看变量分布 在…

二维凸包(Graham) 模板 + 详解

(闲话) 上了大学后没怎么搞oi,从土木跑路到通信了(提桶开润大成功!),但是一年上两年的课(补的),保研也寄掉了( 说起来自从博客被大学同学发现并…