大数据4 - 分布式计算

news2025/1/21 22:03:38

1.分布式计算概述

分散->汇总模式:

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

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

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

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

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

 

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

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

分散 -> 汇总  MapReduce 就是这种模式)
中心调度 -> 步骤执行 (大数据体系的 Spark Flink 等是这种模式)

2.MapReduce概述 

 分布式计算框架 - MapReduce

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

MapReduce提供了2个编程接口:

Map
Reduce

其中

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

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

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

MapReduce执行原理:

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

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

 

 MapReduce执行原理:

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

可以3台服务器执行Map1台服务器执行Reduce

 

1. 什么是MapReduce

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

2. MapReduce的主要编程接口

map 接口,主要提供 分散 功能,由服务器分布式处理数据
reduce 接口,主要提供 汇总 功能,进行数据汇总统计得到结果
MapReduce 可供 Java Python 等语言开发计算程序
注: MapReduce 尽管可以通过 Java Python 等语言进行程序开发,但当下年代基本没人会写它的代码了,因为太过时了。   尽管 MapReduce 很老了,但现在仍旧活跃在一线,主要是 Apache Hive 框架非常火,而 Hive 底层就是使用的 MapReduce 所以对于 MapReduce 的代码开发,课程会简单扩展一下,但不会深入讲解,对 MapReduce 的底层原理会放在 Hive 之后,基于 Hive 做深入分析。

3. MapReduce的运行机制

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

 

3.YARN概述 

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

 

 

 

 

 

 

 

YARN的资源调度

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

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

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

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

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

 

 

1. YARN是做什么的?

YARN是Hadoop的一个组件
用以做集群的资源(内存、CPU等)调度

2. 为什么需要资源调度

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

3. 程序如何在YARN内运行

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

4. MapReduce和YARN的关系

YARN 用来调度资源给 MapReduce 分配和管理运行资源
所以, MapReduce 需要 YARN 才能执行(普遍情况)

 4. YARN架构

1. 掌握 YARN 的运行角色和角色之间的关系
2. 理解使用容器做资源分配和隔离

 

 

 

 

 

 

 

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

主(Master ): ResourceManager
从(Slave ): NodeManager

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

ResourceManager 管理、统筹并分配整个集群的资源
NodeManager :管理、分配单个服务器的资源,即创建管理容器,由容器提供资源供程序使用

3. 什么是YARN的容器?

容器( Container )是 YARN NodeManager 在所属服务器上分配资源的手段
创建一个资源容器,即由 NodeManager 占用这部分资源
然后应用程序运行在 NodeManager 创建的这个容器内
应用程序无法突破容器的资源限制
ps :容器是虚拟化的相关机制,后续我们会详细讲解

 

 YARN辅助角色

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

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

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

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

 

YARN的架构有哪些角色

核心角色: ResourceManager NodeManager
辅助角色: ProxyServer ,保障 WEB UI 访问的安全性
辅助角色: JobHistoryServer ,记录历史程序运行信息和日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/414227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git版本规范-前端

前言 本文档适用于前端的小伙伴。针对目前前端只有测试环境和生产环境,为更好管理前端代码和适用于自动化部署,编写次文档,有不同意见的小伙伴可以进行讨论。 分支 由于没有目前没有预发环境,简化开发、测试、部署和发布流程&a…

W80X|联盛德|nulllab空想实验室|Arduino适配|学习(6):w80x_arduino环境安装

文章目录概述官方推荐安装方法(实测未成功)readme中的安装步骤:手动安装方法:clone项目至本地手动新建w80x_arduino管理器存放目录w80x_arduino开发进展说明概述 此开源项目由nulllab空想实验室团队维护,并得到联盛德…

STL基本概念

📖作者介绍:22级树莓人(计算机专业),热爱编程<目前在c++阶段>——目标Windows,MySQL,Qt,数据结构与算法,Linux,多线程&…

vue3+TS+Pinia+Vite项目实战之一

文章目录一、创建项目1.1 使用脚手架创建项目1.2 初始化项目二、登录页面的开发三、使用vite-plugin-mock模拟后台接口返回数据四、前端调用后端接口使用axios五、首页layout六、动态菜单七、设置需要登录才能访问某些页面一、创建项目 1.1 使用脚手架创建项目 npm init vuel…

【网络安全】SQL注入--报错注入

报错注入报错注入定义代码展示常用的报错语句1.获取数据库名称2.获取mysql账号密码3.获取表名4.获取字段名5.获取账号密码报错注入定义 报错注入:利用sql语句的不规范,获取相关sql提示信息 代码展示 常用的报错语句 select first_name, last_name FROM…

【小程序】django笔记2

templates路径除了在settings中的templates的DIR[]中申明还有什么别的方法?已知,django底层根据app注册顺序查找各app文件中的templates文件夹,在其中搜索目标模版文件。已知,app注册在settings中的INSTAll-APPS里。已知&#xff…

MyBatis基础增删改查

文章目录MyBatis1. MyBatis是什么?2. 为什么要学习MyBatis3. 第一个MyBatis环境搭建1)添加MyBatis框架支持2)配置MyBatis相关配置文件3)添加代码4. 解决类的属性名和数据表字段名不一致(resultMap)5. 增加操作1)返回受影响的行数2)返回自增的id6. 修改操作7. 删除操…

类和对象深入讲解(1)

目录 1.类和对象的初步认识 1.1面向过程和面向对象的区别 1.2类的引入 1.3内的定义 1.4类的访问限定符及封装 1.4.1访问限定符 1.4.2 封装 1.5类的作用域 1.6类对象模型 1.6.1如何计算类对象大小 1.类和对象的初步认识 1.1面向过程和面向对象的区别 C语言是面向过程的…

大模型混战,阿里百度华为谁将成就AI时代的“新地基”?

从算力基础到用户生态,群雄逐鹿大模型 自2022年stable diffusion模型的进步推动AIGC的快速发展后,年底,ChatGPT以“破圈者”的姿态,快速“吸粉”亿万,在全球范围内掀起了一股AI浪潮,也促使了众多海外巨头竞…

Golang每日一练(leetDay0030)

目录 88. 合并两个有序数组 Merge Sorted Array 🌟 89. 格雷编码 Gray Code 🌟🌟 90. 子集 II Subsets II 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/…

为什么要创建FAQ?这篇文章告诉你

什么是FAQ 通过上述的引入大家应该也了解到了,FAQ是为了“解决问题”而存在的。FAQ是英文Frequently Asked Questions的缩写,中文意思就是“经常问到的问题”,或者更通俗地叫做“常见问题解答”。FAQ是当前网络上提供在线帮助的主要手段&…

小程序开发收费价目表

小程序作为一种新兴应用形式,正在逐渐成为企业和个人推广、运营的重要手段。然而,小程序开发的价格因项目规模和复杂程度差异较大,令不少人望而却步。本文将从小程序开发的相关因素入手,探讨小程序开发的价格范围和算法。 一、小…

【JLink仿真器】盗版检测、连接故障、检测不到芯片问题

【JLink仿真器】盗版检测、连接故障、检测不到芯片问题一、问题描述二、解决方法1、降低驱动(解决非法问题以及连接故障)2、SWD引脚被锁(解决检测不到芯片)三、说明一、问题描述 盗版检测:the connected probe appear…

【Linux】Mysql之索引的基本操作

一、为什么要使用索引 索引就是根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,实质上是一张描述索引列的列值与原表中记录行之间一 一对应关系的有序表。 索引是 MySQL 中十分重要的数据库对象,是数据库性能调优技术的基础&…

GraphCL方法介绍(Graph Contrastive Learning with Augmentations)

论文链接:https://arxiv.org/pdf/2010.13902.pdf 附录链接:https://yyou1996.github.io/files/neurips2020_graphcl_supplement.pdf 代码链接:https://github.com/Shen-Lab/GraphCL 1 图的数据增强 我们专注于图级扩充。给定 M 个图的数…

【分布式】熔断、降级傻傻分不清楚-熔断和降级的真实关系

文章目录前言降级熔断什么是服务熔断熔断和降级的关系降级方式1、熔断降级(不可用)2、超时降级3、限流降级总结前言 刚开始我以为熔断和降级是一体的,以为他们必须配合使用; 只不过名字不一样而已,但是当我经过思考过…

[架构之路-164]-《软考-系统分析师》-3-操作系统基本原理-文件系统(文件的逻辑组织、文件的物理组织、硬盘空间管理、分布式文件系统)

目录 3 . 4 文件系统 3.4.1文件的组织结构 1 . 逻辑结构 2 . 物理结构 3 . 树形文件结构 3.4.2 硬盘存储空间管理 1 . 空闲文件目录 2 . 空闲块链 3 . 位示图法 4 . 成组链接法 3.4.3分布式文件系统 1. D F S 的特点 2. DFS 的组成 3. DFS 的架构 3 . 4 文件系统…

腾讯云服务器TencentOS系统安装宝塔Linux面板命令

腾讯云服务器TencentOS Server操作系统安装宝塔Linux面板命令选择CentOS安装脚本即可,TencentOS用户态环境与CentOS保持兼容,在CentOS上开发的应用程序可直接在TencentOS Server上运行。腾讯云百科分享腾讯云服务器TencentOS操作系统安装宝塔Linux面板命…

客户端ack模块的实现

文章目录背景第一版设计第二版设计第三、四版设计写在最后背景 所谓客户端ack模块是在我们推送服务中一个技术需求,本文主要介绍其迭代过程。 首先简单介绍下推送服务的架构,如下图。用户请求ws服务,建立ws长连接,并通过login和…