❤️❤️❤️Mapreduce分布式计算组件和YARN分布式资源调度

这篇具有很好参考价值的文章主要介绍了❤️❤️❤️Mapreduce分布式计算组件和YARN分布式资源调度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上文我们已经介绍Hadoop中HDFS分布式存储组件

今天我们来学习Hadoop生态中另两大组件Mapreduce和YARN

一、 MapReduce是hadoop三大组件之一,是分布式计算组件

Map阶段 : 将数据拆分到不同的服务器后执行Maptask任务,得到一个中间结果

Reduce阶段 : 将Maptask执行的结果进行汇总,按照Reducetask的计算 规则获得一个唯一的结果

我们在MapReduce计算框架的使用过程中,我们只需要关注,Map任务的规则,和Reduce任务的规则即可

MapReduce的核心思想是: 先分(Map)再和(Reduce)

思考: MapReduce中hadoop服务帮我们完成了什么???

我们自己完成的是map和Reduce任务的规则制定.

Hadoop 完成了:

  1. 数据的拆分多个部分分别指定不同服务进行计算

  2. 申请计算资源

  3. 读取计算数据

  4. reduce汇总map结果

  5. 写入计算结果(hdfs)

  6. ......

Hadoop的出现大大简化了大数据的开发工作,我们只需要关注20%的业务计算,而80%的技术问题,都由hadoop 帮我们解决了.

思考: 所有的计算任务都可以使用mapreduce任务解决么? 什么样的任务可以使用mapreduce任务处理.

  1. 一个复杂任务,可以拆分为多个简单任务.

  2. 任务之间没有任何依赖关系,可以同时执行

  3. 结果之间没有依赖关系,可以随机合并.

将文件数据上传hdfs的/input目录下

cd /export/server/hadoop/share/hadoop/mapreduce
​
hadoop jar hadoop-mapreduce-examples-3.3.0.jar wordcount  /input /output

二、YARN概述(了解)

yarn是一个分布式资源调度平台

yarn的作用是给mapreduce提供计算资源

yarn中都调度了哪些集群资源?

内存资源和cpu资源

yarn中资源调度的目的是什么?

提高集群资源的利用率,防止部分程序恶意占用资源, 采用申请制,申请多少资源就使用多少资源

yarn是hadoop生态圈发展的前提:

yarn不光可以对于hadoop平台的MR任务进行资源调度,可以对于所有的基于yarn的规则申请资源的服务进行资源调度,也就保证了我们基于hadoop组件运行的其他大数据服务可以获得合理的资源分配.

除了MapReduce,我们的Yarn还支持多种计算引擎 spark,flink等..

三、YARN架构(重要)

Yarn是标准的主从架构集群

主角色ResourceManager: 统一管理和分配集群资源,监控每一个NodeManager的健康状况.

从角色NodeManager: 统计汇报集群资源给RM,当前服务器集群资源的使用和容器拆分.监督资源回收

容器机制:

NodeManager,在程序没有执行时就预先抢占一部分资源划分为容器,等待服务进行使用

程序运行时先申请资源,RM分配资源后,由NodeManager划分出相应的资源支持程序运行

程序运行期间无法突破资源限制最多只能使用容器范围内的资源

容器资源分为: 内存资源和cpu资源

思考:

1台主机 NodeManager划分了3个容器 分别为 容器1: 1G 容器2: 2G 容器3: 3G

问题一: 如果我有一个程序需要10M内存我使用哪一个容器 容器1

问题二: 如果我有一个程序需要使用1.4G内存我使用哪一个容器 容器2

问题三: 如果我有一个程序,需要使用3.8G 内存我使用哪一个容器? 使用容器1和容器3进行合并提供给程序使用

分配集群资源时,容器可以合并,但是不能拆分.

四、MapReduce & YARN 的部署(了解)

1、集群规划(重要)

HDFS的集群规划

node1: namenode datanode

node2: SecondaryNamenode datanode

node3: datanode

如果需要扩展

node4 : datanode

node5 : datanode

.........

YARN的集群规划

思考1: 哪一个角色占用资源最多??? ResourceManager

所以我们将RM放置在node1中,因为node1的服务器性能最好

思考2: hadoop中yarn集群可以和hdfs集群在同一台服务器中么?

可以,一般Hadoop服务部署时,hdfs和yarn逻辑上分离,物理上在一起.

yarn分配的是内存和cpu资源, 从而运行MapReduce计算任务,而该计算任务需要获取计算数据,计算数据存放在hdfs上,所以他们物理上在一起后数据传输速度快.

集群规划

node1: ResourceManager NodeManager | NameNode DataNode

node2: NodeManager | SecondaryNameNode DataNode

node3: Nodemanager | DataNode

如果需要扩展:

node4: Nodemanager | DataNode

node5: Nodemanager | DataNode

.....

什么叫做服务? 什么叫做服务器?

服务器: 硬件层面的概念,一个服务器可以提供给我们相应的内存,cpu,磁盘资源等,但是服务器必须有操作系统,一般是linux系统.

服务: mysql hadoop ssh 在后台运行,一直保持接受数据状态,可以随时被客户端连接的软件.

一个服务器中可以运行多个服务

MapReduce的运行需要Yarn分配资源,计算完成后资源回收,不会持久在后台保持,并不能被客户端连接, 所以他不是一个服务,也不需要搭建集群.

在Hadoop平台中有两个集群HDFS和YARN还有一个计算框架MapReduce

五、Yarn集群部署

注意:我们这个部署方案是在hdfs已经部署完成的基础上进行操作的,不是从0开始

  1. 先关闭HDFS集群

stop-dfs.sh
  1. 修改配置文件

进入/export/server/hadoop/etc/hadoop目录下进行修改

修改完node1上的配置文件后,需要远程发送到node2和node3中

scp -r /export/server/hadoop root@node2:/export/server
scp -r /export/server/hadoop root@node3:/export/server

六、MapReduce & YARN 初体验(了解)

 Yarn集群的启停(重要)

# 启动yarn集群
start-yarn.sh
# 停止yarn集群
stop-yarn.sh

单起单停

yarn --daemon start|stop|status resourcemanager|nodemanager

一键自动hdfs和yarn集群

# 启动
start-all.sh
# 终止
stop-all.sh

执行mapreduce任务

保证服务启动且可以正常使用(yarn 和hdfs)

示例1: 求π

hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar pi 3 1000

七、历史服务器(了解)

历史服务器:主要是为了将各个NodeManager中零散的log日志聚集起来,存放到hdfs中,启动一个历史服务器,用来统一查看历史服务信息(计算任务的执行信息)

历史服务器配置

yarn-site.xml文件

<!-- 设置yarn历史服务器地址 -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://node1:19888/jobhistory/logs</value>
</property>
​
<!-- 开启日志聚集 -->
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>

注意: 如果修改了配置文件,一定要重启hadoop服务,否则无法生效

历史服务器启动

mapred --daemon start historyserver

历史服务器查看

node1:19888文章来源地址https://www.toymoban.com/news/detail-849697.html

到了这里,关于❤️❤️❤️Mapreduce分布式计算组件和YARN分布式资源调度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 分布式计算框架Hadoop核心组件

    分布式计算框架Hadoop核心组件

    Hadoop作为成熟的分布式计算框架在大数据生态领域已经使用多年,本文简要介绍Hadoop的核心组件MapReduce、YARN和HDFS,以加深了解。 1、Hadoop基本介绍 Hadoop是分布式计算框架,主要解决海量数据的存储和计算问题。Hadoop主要组件包括分布式文件系统HDFS、分布式离线并行计算框架

    2024年02月06日
    浏览(11)
  • Hadoop分布式计算与资源调度:打开专业江湖的魔幻之门

    Hadoop分布式计算与资源调度:打开专业江湖的魔幻之门

    本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程序员或相关权利人所有。本博客的目的仅为个人学习和交流之用,并非商业用途。 我在整理学习笔记的过程中尽力确保准确性,但无法保证内容的完整性和时效性。本博客的

    2024年02月11日
    浏览(16)
  • 分布式处理框架 MapReduce

    分布式处理框架 MapReduce

    3.2.1 什么是MapReduce 源于Google的MapReduce论文(2004年12月) Hadoop的MapReduce是Google论文的开源实现 MapReduce优点: 海量数据离线处理易开发 MapReduce缺点: 实时流式计算 3.2.2 MapReduce编程模型 MapReduce分而治之的思想 数钱实例:一堆钞票,各种面值分别是多少 单点策略 一个人数所有的钞票

    2024年02月11日
    浏览(14)
  • 分布式程序中YARN中的角色

    ResuourceManager 和 NodeManager 主管进程: MrApplicationMaster 任务进程: YarnChild YarnChild 运行 MapTask和 ReduceTask 主管进程: Driver 任务进程: Executor Executor运行 shuffleMapTask 和 resultTask 主管进程: JobManager 任务进程 : TaskManager TaskManager运行 SourceTask、SinkTask、OpreatorTask

    2024年02月07日
    浏览(6)
  • Spark单机伪分布式环境搭建、完全分布式环境搭建、Spark-on-yarn模式搭建

    Spark单机伪分布式环境搭建、完全分布式环境搭建、Spark-on-yarn模式搭建

    搭建Spark需要先配置好scala环境。三种Spark环境搭建互不关联,都是从零开始搭建。 如果将文章中的配置文件修改内容复制粘贴的话,所有配置文件添加的内容后面的注释记得删除,可能会报错。保险一点删除最好。 上传安装包解压并重命名 rz上传 如果没有安装rz可以使用命

    2024年02月06日
    浏览(54)
  • 大数据中的分布式文件系统MapReduce的选择题

    一. 单选题(共9题,49.5分) (单选题)下列传统并行计算框架,说法错误的是哪一项? A. 刀片服务器、高速网、SAN,价格贵,扩展性差上 B. 共享式(共享内存/共享存储),容错性好 C. 编程难度高 D. 实时、细粒度计算、计算密集型 正确答案: B:共享式(共享内存/共享存储),容错性好; 5.5分

    2024年02月04日
    浏览(9)
  • 【深入浅出 Yarn 架构与实现】6-3 NodeManager 分布式缓存

    【深入浅出 Yarn 架构与实现】6-3 NodeManager 分布式缓存

    不要跳过这部分知识,对了解 NodeManager 本地目录结构,和熟悉 Container 启动流程有帮助。 主要作用就是将用户应用程序执行时,所需的外部文件资源下载缓存到各个节点。 YARN 分布式缓存工作流程如下: 客户端将应用程序所需的文件资源 (外部字典、JAR 包、二进制文件) 提交

    2024年02月03日
    浏览(14)
  • Ceph 分布式存储之资源池管理

    上面我们已经完成了 Ceph 集群的部署,但是我们如何向 Ceph 中存储数据呢?首先我们需要在 Ceph 中定义一个 Pool 资源池。Pool 是 Ceph 中存储 Object 对象抽象概念。我们可以将其理解为 Ceph 存储上划分的逻辑分区,Pool 由多个 PG 组成;而 PG 通过 CRUSH 算法映射到不同的 OSD 上;同

    2024年02月16日
    浏览(8)
  • Linux从零搭建Hadoop集群(CentOS7+hadoop 3.2.0+JDK1.8+Mapreduce完全分布式集群案例)

    Linux从零搭建Hadoop集群(CentOS7+hadoop 3.2.0+JDK1.8+Mapreduce完全分布式集群案例)

    和相关配置版本 :Linux CentOS Hadoop Java 版本: CentOS7 Hadoop3.2.0 JDK1.8 虚拟机参数信息内存3.2G、处理器2x2、内存50G ISO:CentOS-7-x86_64-DVD-2009.iso 基本主从思路: 先把基础的设置(SSH、JDK、Hadooop、环境变量、Hadoop和MapReduce配置信息)在一台虚拟机(master)上配好,通过

    2024年02月05日
    浏览(15)
  • 通用分布式锁组件

    通用分布式锁组件

    自定义注解实现通用分布式锁组件。 Redisson官网:https://redisson.org/ Redisson是一个基于Redis的工具包,可以帮助开发人员更轻松地使用Redis,功能非常强大。将JDK中很多常见的队列、锁、对象都基于Redis实现了对应的分布式版本并提供高级的分布式锁,分布式集合,分布式对象,

    2024年04月09日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包