0


大数据4 - 分布式计算

1.分布式计算概述

分散->汇总模式:

  1. 将数据分片,多台服务器各自负责一部分数据处理

  2. 然后将各自的结果,进行汇总处理

  3. 最终得到想要的计算结果

  4. 什么是计算、分布式计算?


计算:对数据进行处理,使用统计分析等手段得到需要的结果


分布式计算:多台服务器协同工作,共同完成一个计算任务

  1. 分布式计算常见的2种工作模式


分散->汇总
(MapReduce就是这种模式)


中心调度->步骤执行(大数据体系的Spark、Flink等是这种模式)

2.MapReduce概述

分布式计算框架** - MapReduce**

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

MapReduce提供了2个编程接口:


Map


Reduce

其中


Map功能接口提供了“分散”的功能,由服务器分布式对数据进行处理


Reduce功能接口提供了“汇总(聚合)”的功能,将分布式的处理结果汇总统计

用户如需使用MapReduce框架完成自定义需求的程序开发

只需要使用Java、Python等编程语言,实现Map Reduce功能接口即可。

MapReduce****执行原理:

一个案例,简单分析一下,MapReduce是如何完成分布式计算的。

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

MapReduce****执行原理:

假定有4台服务器用以执行MapReduce任务

可以3台服务器执行Map,1台服务器执行Reduce

  1. 什么是MapReduce


MapReduce是Hadoop中的分布式计算组件


MapReduce可以以分散->汇总(聚合)模式执行分布式计算任务

  1. MapReduce的主要编程接口


map接口,主要提供“分散”功能,由服务器分布式处理数据


reduce接口,主要提供“汇总”功能,进行数据汇总统计得到结果


MapReduce可供Java、Python等语言开发计算程序


注:MapReduce尽管可以通过JavaPython等语言进行程序开发,但当下年代基本没人会写它的代码了,因为太过时了。
尽管MapReduce很老了,但现在仍旧活跃在一线,主要是Apache Hive框架非常火,而Hive底层就是使用的MapReduce所以对于MapReduce的代码开发,课程会简单扩展一下,但不会深入讲解,对MapReduce的底层原理会放在Hive之后,基于Hive****做深入分析。

  1. MapReduce的运行机制


将要执行的需求,分解为多个Map Task和****Reduce Task


Map Task Reduce Task分配到对应的服务器去执行

3.YARN概述

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

YARN****的资源调度

YARN 管控整个集群的资源进行调度,那么应用程序在运行时,就是在YARN的监管(管理)下去运行的。

这就像:全部资源都是公司(YARN)的,由公司分配给个人(具体的程序)去使用。

比如,一个具体的MapReduce程序。

我们知道, MapReduce程序会将任务分解为若干个Map任务和Reduce任务。

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

  1. YARN是做什么的?


YARN是Hadoop的一个组件


用以做集群的资源(内存、CPU等)调度

  1. 为什么需要资源调度


将资源统一管控进行分配可以提高资源利用率

  1. 程序如何在YARN内运行


程序向YARN申请所需资源


YARN****为程序分配所需资源供程序使用

  1. MapReduce和YARN的关系


YARN用来调度资源给MapReduce****分配和管理运行资源


所以,MapReduce需要YARN才能执行(普遍情况)

4. YARN架构

1.
掌握YARN的运行角色和角色之间的关系

2.
理解使用容器做资源分配和隔离

  1. YARN的架构有哪2个角色?


主(Master):ResourceManager


从(Slave):NodeManager

  1. 两个角色各自的功能是什么?


ResourceManager管理、统筹并分配整个集群的资源


NodeManager****:管理、分配单个服务器的资源,即创建管理容器,由容器提供资源供程序使用

  1. 什么是YARN的容器?


容器(Container)是YARNNodeManager在所属服务器上分配资源的手段


创建一个资源容器,即由NodeManager占用这部分资源


然后应用程序运行在NodeManager创建的这个容器内


应用程序无法突破容器的资源限制


ps****:容器是虚拟化的相关机制,后续我们会详细讲解

YARN****辅助角色

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


ResourceManager:集群资源总管家


NodeManager:单机资源管家

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


代理服务器(ProxyServer):Web Application Proxy Web应用程序代理


历史服务器(JobHistoryServer):应用程序历史信息记录服务

YARN的架构有哪些角色


核心角色:ResourceManager和****NodeManager


辅助角色:ProxyServer,保障WEB UI访问的安全性


辅助角色:JobHistoryServer,记录历史程序运行信息和日志


本文转载自: https://blog.csdn.net/baidu_41651554/article/details/130164080
版权归原作者 像影子追着光梦游_ 所有, 如有侵权,请联系我们删除。

“大数据4 - 分布式计算”的评论:

还没有评论