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

这篇具有很好参考价值的文章主要介绍了大数据技术之Hadoop:MapReduce与Yarn概述(六)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、分布式计算

二、分布式资源调度

2.1 什么是分布式资源调度

2.2 yarn的架构

2.2.1 核心架构

2.2.2 辅助架构


前面我们提到了Hadoop的三大核心功能:分布式存储、分布式计算和资源调度,分别由Hadoop的三大核心组件可以担任。

即HDFS是分布式存储组件,MapReduce是分布式计算组件,Yarn则是资源调度组件。

本章我们就分布式计算和资源调度进行简单讲解。

一、分布式计算

那么什么是分布式计算呢?

以前我们开发过程中,要进行计算通常都是在一台电脑上完成的。这从某种意义上说,计算的数据量不算特别大。单台机器能够胜任。

但是假如现在有一个1PB的数据需要进行计算,那么单台机器能完成吗?先不说存储的事情,就算能完成,拿现在最强性能的cpu,那也要计算到猴年马月了。

所以单台不够,我们就多台机器同时计算,这就衍生出了分布式计算。

分布式计算的两种模式

分散汇总模式

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

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

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

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

中心调度->步骤执行模式

中心调度、步骤执行模式 

1. 由一个节点作为中心调度管理者

2. 将任务划分为几个具体步骤

3. 管理者安排每个机器执行任务

4. 最终得到结果数据

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

中心调度->步骤执行模式

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作为分布式资源调度组件,它具体有啥作用呢?换句话说什么是资源调度? 我们为什么需要资源调度?

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

服务器会运行多个程序, 每个程序对资源(CPU内存等)的使用都不同

程序没有节省的概念,有多少就会用多少。

所以,为了提高资源利用率,进行调度就非常有必要了。

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

这就像:全部资源都是公司(YARN)的,由公司分配给个人(具体的程序)去使用。比如,一个具体的MapReduce程序。 我们知道, MapReduce程序会将任务分解为若干个Map任务和Reduce任务。假设,有一个MapReduce程序, 分解了3Map任务,和1Reduce任务,那么如何在YARN的监管(管理)下运行呢?

我们直接看下面的动图:

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

2.2 yarn的架构

yarn分为核心架构和辅助架构

2.2.1 核心架构

类比于HDFS:

HDFS, 主从架构,有2个角色

  • 主(Master)角色:NameNode
  • 从(Slave角色 DataNode

YARN,主从架构,有2个角色 

  • 主(Master)角色:ResourceManager
  • 从(Slave) 角色NodeManager

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

ResourceManager整个集群的资源调度者 负责协调调度各个程序所需的资源

NodeManager单个服务器的资源调度者负责调度单个服务器上的资源提供给应用程序使用

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

如何实现服务器上精准分配如下的硬件资源呢?

答:开辟的空间,称之为:容器

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

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

2.2.2 辅助架构

Yarn的架构中处理核心角色,ResourceManager和NodeManager外,还可以搭配2个辅助角色使得YARN集群运行更加稳定。

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

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

代理服务器

代理服务器,即Web应用代理是 YARN 的一部分。默认情况下,它将作为资源管理器(RM)的一部分运行,但是可以配置为在独立模式下运行。使用代理的原因是为了减少通过 YARN 进行基于网络的攻击的可能性。

这是因为, YARN在运行时会提供一个WEB UI站点(同HDFSWEB UI站点一样)可供用户在浏览器内查看YARN的运行信息。

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

对外提供WEB 站点会有安全性问题, 而代理服务器的功能就是最大限度保障对WEB UI的访问是安全的。

比如:

  • 警告用户正在访问一个不受信任的站点
  • 剥离用户访问的Cookie
  • 开启代理服务器,可以提高YARN在开放网络中的安全性 (但不是绝对安全只能是辅助提高一些)

代理服务器默认集成在了ResourceManager

也可以将其分离出来单独启动,如果要分离代理服务器

1. yarn-site.xml中配置 yarn.web-proxy.address 参数即可 (部署环节会使用到)

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

2. 并通过命令启动它即可 $HADOOP_YARN_HOME/sbin/yarn-daemon.sh start proxyserver(部署环节会使用到)

历史服务器

历史服务器的功能很简单: 记录历史运行的程序的信息以及产生的日志提供WEB UI站点供用户使用浏览器查看

程序看日志不是日常操作吗? 为何需要一个单独的历史服务器?

回答这个问题要从YARN的运行机制说起。

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

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

具体如何使用,我们将在下一章节(yarn部署)讲解。文章来源地址https://www.toymoban.com/news/detail-707453.html

到了这里,关于大数据技术之Hadoop:MapReduce与Yarn概述(六)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 05.hadoop上课笔记之hadoop5mapreduce和yarn

    1.yarn(yet another resource negotiator)分布式资源管理系统 1.作业(job)包含多个任务(task) 2.container封装了cpu的各种资源 2.yarn的结构 1.ResouceManager(全局资源管理) 系统资源管理分配 处理客户端请求,健康检查namenode 2.nodemanager(当前节点资源管理) 3.applicationMaster(发送心跳RM.二次分配资源给

    2024年02月08日
    浏览(55)
  • 【Hadoop】- MapReduce概述[5]

    目录 前言 一、分布式计算框架 - MapReduce 二、MapReduce执行原理 MapReduce是一种 分布式计算框架 ,由Google开发。它的设计目标是将大规模数据集的处理和生成任务分布到一个由廉价计算机组成的集群中。 在MapReduce模型中,输入数据被分割成若干小块,并在集群中的多个节点上并

    2024年04月25日
    浏览(34)
  • Hadoop之MapReduce概述

    MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 MapReduce优缺点 优点 1)MapReduce易于编

    2024年02月08日
    浏览(57)
  • Hadoop3.0大数据处理学习3(MapReduce原理分析、日志归集、序列化机制、Yarn资源调度器)

    前言:如果想知道一堆牌中有多少张红桃,直接的方式是一张张的检查,并数出有多少张红桃。 而MapReduce的方法是,给所有的节点分配这堆牌,让每个节点计算自己手中有几张是红桃,然后将这个数汇总,得到结果。 官方介绍:MapReduce是一种分布式计算模型,由Google提出,

    2024年02月08日
    浏览(55)
  • Hadoop入门学习笔记——四、MapReduce的框架配置和YARN的部署

    视频课程地址:https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd=5ay8 Hadoop入门学习笔记(汇总) 本次YARN的部署结构如下图所示: 当前,共有三台服务器(虚拟机)构成集群,集群规划如下所示: 主机 部署的服务 node1 ResourceManager、N

    2024年02月04日
    浏览(47)
  • Hadoop——HDFS、MapReduce、Yarn期末复习版(搭配尚硅谷视频速通)

    1.1 HDFS定义 HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次, 它是分布式的 ,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。 HDFS的使用场景 :适合一次写入,多次读出的场景。一个文件经过创建、写入和关

    2024年01月17日
    浏览(42)
  • 【Hadoop_06】MapReduce的概述与wc案例

    MapReduce是一个 分布式运算程序 的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是 将用户编写的业务逻辑代码 和 自带默认组件 整合成一个完整的 分布式运算程序 ,并发运行在一个Hadoop集群上。 1)MapReduce易于编程 它简单的实现一些接口

    2024年02月04日
    浏览(48)
  • 23、hadoop集群中yarn运行mapreduce的内存、CPU分配调度计算与优化

    1、hadoop3.1.4简单介绍及部署、简单验证 2、HDFS操作 - shell客户端 3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件夹属性等)-java 4、HDFS-java操作类HDFSUtil及junit测试(HDFS的常见操作以及H

    2024年02月07日
    浏览(53)
  • 【hadoop运维】running beyond physical memory limits:正确配置yarn中的mapreduce内存

    在hadoop3.0.3集群上执行hive3.1.2的任务,任务提交时报如下错误: Application application_1409135750325_48141 failed 2 times due to AM Container for appattempt_1409135750325_48141_000002 exited with exitCode: 143 due to: Container [pid=4733,containerID=container_1409135750325_48141_02_000001] is running beyond physical memory limits. Curren

    2024年02月09日
    浏览(45)
  • 【云计算与大数据技术】Hadoop MapReduce的讲解(图文解释,超详细必看)

    MapReduce 是一种分布式计算框架,能够处理大量数据 ,并提供容错 、可靠等功能 , 运行部署在大规模计算集群中,MapReduce计算框架采用主从架构,由 Client、JobTracker、TaskTracker组成 用户编写 MapReduce程序,通过Client提交到JobTracker JobTracker负责管理运行的 TaskTracker节点;负责Job的调度

    2024年02月13日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包