大数据技术之Hadoop:MapReduce与Yarn概述(六)

目录

一、分布式计算

二、分布式资源调度

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框架完成自定义需求的程序开发。只需要使用JavaPython等编程语言,实现Map Reduce功能接口即可。

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

MapReduce的运行机制:

  • 将要执行的需求,分解为多个Map TaskReduce 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程序, 分解了3Map任务,和1Reduce任务,那么如何在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站点(同HDFSWEB 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部署)讲解。

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

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

相关文章

基于Docker从零到一实操MySql的主从复制

文章目录 一、在Docker上安装,启动MySQL查看docker是否安装成功安装mysql查看mysql镜像进入mysql后台操作docker Volume(卷)入门 MySql的主从复制1. 创建MySQL主从复制的网络2. 创建MySQL主服务器3. 创建MySQL从服务器4. 配置主从同步5.测试主…

2023高教社杯数学建模E题思路代码 - 黄河水沙监测数据分析

# 1 赛题 E 题 黄河水沙监测数据分析 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变 化和人民生活的影响, 以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾 等方面都具有重要的理论指导意义。 附件 1 给出了位…

在学习编程的过程中,我会记录下以下内容:

在学习编程的过程中,我会记录下以下内容: 常用代码片段:我会记录一些常用的代码片段,例如文件读写、列表操作、字符串处理等。这些代码片段可以在日常编程中快速复用,提高编码效率。 # 文件读取 with open(file.txt,…

软考高级架构师下篇-14面向服务架构设计理论

目录 1. 引言2. SOA的相关概念3. SOA的发展历史4. SOA的参考架构5. SOA 主要协议和规范6. SOA设计的标准要求7. SOA的作用与设计原则8. SOA的设计模式9. SOA构建与实施10. 前文回顾1. 引言 在面向服务的体系结构(Service-Oriented Architecture,SOA)中,服务的概念有了延伸…

使用EMgu检测人脸

1,安装EMgu 在NuGet中,查找并安装EMgu 2,做人脸检测 首先,声明几个重要的类 //Thread.Sleep(3000);matImg = new Mat();capture.Retrieve(matImg, 0); frame=new Image<Bgr, byte>(matImg.Bitmap); 当,frame != null时,检测到人脸 3,给人脸画框 i…

苹果macOS 13.5.2正式发布 修复ImageIO进程

9 月 8 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.5.2 更新&#xff08;内部版本号&#xff1a;22G91&#xff09;&#xff0c;本次更新距离上次发布隔了 21 天。 需要注意的是&#xff0c;因苹果各区域节点服务器配置缓存问题&#xff0c;可能有些地方探测到…

索尼 toio™ 应用创意开发征文 | 如何用Python控制Q宝进行机器人擂台赛

你是否曾经想过&#xff0c;如果能用编程来控制真实的物体&#xff0c;那该有多有趣&#xff1f;如果能让一个小方块按照你的指令来移动、旋转、闪烁&#xff0c;那该有多酷&#xff1f;如果能让一个小方块和其他小方块互动&#xff0c;那该有多神奇&#xff1f;这些想法&#…

编程语言的类型划分

汇编语言 低级语言&#xff0c;通过汇编器翻译成机器语言 MOV、PUSH、ADD等 特点&#xff1a; 对机器友好、执行效率高、移植性差。 人类操作不太方便&#xff0c;需要专业人员。 高级语言 C、C、Java、Python、Golang等 最终还是会转化成为机器语言。 执行过程划分 编译型 ●…

OpenText EnCase Endpoint Security 识别潜在的网络安全威胁并快速消灭威胁

如今&#xff0c;敏感数据丢失和 IT 系统中断是各类组织面临的最大危机。网络攻击频率不断攀升、修复成本日益增加以及响应时间延长都加剧了数据丢失的隐患。 OpenText EnCase Endpoint Security 的高效体现在能够加速检测恶意活动&#xff0c;并在其导致不可挽回的损失或丢失敏…

嵌入式IDE(2):KEIL中SCF分散加载链接文件详解和实例分析

在上一篇文章IAR中ICF链接文件详解和实例分析中&#xff0c;我通过I.MX RT1170的SDK中的内存映射关系&#xff0c;分析了IAR中的ICF链接文件的语法。对于MCU编程所使用的IDE来说&#xff0c;IAR和Keil用得比较多&#xff0c;所以这一篇文章就来分析一下Keil的分散文件.scf(scat…

【设计模式】组合模式实现部门树实践

1.前言 几乎在每一个系统的开发过程中&#xff0c;都会遇到一些树状结构的开发需求&#xff0c;例如&#xff1a;组织机构树&#xff0c;部门树&#xff0c;菜单树等。只要是需要开发这种树状结构的需求&#xff0c;我们都可以使用组合模式来完成。 本篇将结合组合模式与Mysq…

有哪些做流程图的软件?分享一些制作方法和注意事项

流程图是一种常用的图表&#xff0c;可以用于表示各种工作流程、系统架构、决策流程等。在现代工作生活中&#xff0c;制作流程图已经成为了必备的技能之一。本文将介绍一些常用的做流程图的工具&#xff0c;并分享一些制作方法和注意事项。 做流程图的工具 1.迅捷画图&#x…

AI时代的较量,MixTrust能否略胜一筹?

人工智能的能力正在迅速接近人类&#xff0c;而在许多细分领域&#xff0c;已经超越了人类。虽然短期内这个突破是否会导致人工通用智能&#xff08;AGI&#xff09;还不清楚&#xff0c;但我们现在有的模型被训练成在数字交互中完美地模仿高能人类。尽管AGI仍不确定&#xff0…

配置 Windows 系统环境变量

直接按键盘上面的 WINS 打开 Windows 搜索 搜索“编辑系统环境变量” 也可以右键此电脑->属性->高级系统设置打开相同的界面 点击环境变量 一般添加就是添加在框出的 Path 里面&#xff0c;双击可以看到现有的环境变量并进行编辑 例如我在博客中写把 Java 的 jdk 解压好…

用 Python 微调 ChatGPT (GPT-3.5 Turbo)

用 Python 微调 ChatGPT (GPT-3.5 Turbo) 备受期待的 GPT-3.5 Turbo 微调功能现已推出&#xff0c;并且为今年秋季即将发布的 GPT-4 微调功能奠定了基础。 这不仅仅是一次简单的更新——它是一个游戏规则改变者&#xff0c;为开发人员提供了完美定制人工智能模型的关键解决方案…

【备忘】清理Office缓存

【背景】电脑安装了M365 Apps for enterprise的客户端&#xff0c;遇到不常见的奇怪问题。尝试看清理缓存是否可以解决。 【清理步骤】 1. 关闭所有Office365 应用&#xff1b; 2. 搜索 %AppData% &#xff0c;并打开该文件夹&#xff1b; 3. 进到 AppData > Local > M…

基本介绍——数据挖掘

1.数据挖掘的定义 数据挖掘是采用数学的、统计的、人工智能和神经网络等领域的科学方法&#xff0c;如记忆推理、聚类分析、关联分析、决策树、神经网络、基因算法等技术&#xff0c;从大量数据中挖掘出隐含的、先前未知的、对决策有潜在价值的关系、模式和趋势&#xff0c;并…

深度学习Tensorflow: CUDA_ERROR_OUT_OF_MEMORY解决办法

目前在用深度学习训练&#xff0c;训练中设置batch size后可以正常跑通&#xff0c;但是在训练一轮save_model时&#xff0c;总出现这个错误&#xff0c;即使我调batch size到1也依旧会报错。 发现是在 调用logger时出现问题。 查询后了解到是因为TensorFlow中的eager_executi…

Ei、Scopus双检索 | 2024年第三届人工智能与机器学习前沿国际会议(FAIML 2024)

会议简介 Brief Introduction 2024年第三届人工智能与机器学习前沿国际会议(FAIML 2024) 会议时间&#xff1a;2024年4月26日-28日 召开地点&#xff1a;中国宜昌 大会官网&#xff1a;www.faiml.org FAIML 2024将围绕“人工智能与机器学习”的最新研究领域而展开&#xff0c;为…

VBA技术资料MF54:VBA_EXCEL实时获取鼠标位置

【分享成果&#xff0c;随喜正能量】若人散乱心&#xff0c;乃至以一花&#xff0c;供养于画像&#xff0c;渐见无数佛。所以发一幅释迦牟尼佛像&#xff0c;与同修善友一起每日在微博上供养&#xff0c;只要有供养之心&#xff0c;便可积累功德。以此回向&#xff0c;愿求者如…