【Hadoop技术框架-MapReduce和Yarn的详细描述和部署】

前言:
💞💞大家好,我是书生♡,今天的内容主要是Hadoop的后两个组件:MapReduce和yarn的相关内容。同时还有Hadoop的完整流程。希望对大家有所帮助。感谢大家关注点赞。
💞💞前路漫漫,希望大家坚持下去,不忘初心,成为一名优秀的程序员

个人主页⭐: 书生♡
gitee主页🙋‍♂:闲客
专栏主页💞:大数据开发
博客领域💥:大数据开发,java编程,前端,算法,Python
写作风格💞:超前知识点,干货,思路讲解,通俗易懂
支持博主💖:关注⭐,点赞、收藏⭐、留言💬

目录

  • 1. MapReduce的概述
    • 1.1 MapReduce的定义
    • 1.2 MapReduce的两个阶段
    • 1.3 MapReduce原理-案例
  • 2. YARN概述
    • 2. 1 Yarn的概念
  • 3. YARN架构
    • 3.1 Yarn架构
    • 3.2 YARN容器
  • 4. MapReduce & YARN 的部署
    • 4.1 Yarn集群规划
    • 4. 2 Yarn部署
    • 4.3 查看YARN的WEB UI页面
  • 5. MapReduce & YARN 初体验
    • 5. 1 Yarn集群的启停
    • 5.2 执行mapreduce任务
  • 6. 历史服务器

1. MapReduce的概述

1.1 MapReduce的定义

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

在这里插入图片描述

1.2 MapReduce的两个阶段

MapReduce是hadoop三大组件之一,是分布式计算组件,分为两个阶段:

  • Map阶段 : 将数据拆分到不同的服务器后执行Maptask任务,得到一个中间结果。
  • Reduce阶段 : 将Maptask执行的结果进行汇总,按照Reducetask的计算 规则获得一个唯一的结果

MapReduce的核心思想是: 先分(Map)再和(Reduce)
分散->汇总模式:

  1. 将数据分片,多台服务器各自负责一部分数据处理
  2. 然后将各自的结果,进行汇总处理
  3. 最终得到想要的计算结果

1.3 MapReduce原理-案例

我们以一个案例来演示一下他的流程:

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

假定有4台服务器用以执行MapReduce任务,可以3台服务器执行Map,1台服务器执行Reduce
在这里插入图片描述
注意:

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

2. YARN概述

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

2. 1 Yarn的概念

Yarn是Hadoop的分布式资源调度平台,负责为集群的运算提供运算资源。如果把分布式计算机和单个计算机相对应的话,HDFS就相当于计算机的文件系统,Yarn就是计算机的操作系统,MapReduce就是计算机上的应用程序。

在这里插入图片描述

yarn是一个分布式资源调度平台,主要是给MapReduce调度资源。

  • 调度的有:cpu资源和内存资源

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

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

在这里插入图片描述

向YARN申请使用资源,YARN分配好资源后运行,空闲资源可供其它程序使用

在这里插入图片描述

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

3. YARN架构

3.1 Yarn架构

Yarn既然是分布式那一定是一个标准的主从架构

  • 主角色ResourceManager: 统一管理和分配集群资源,监控每一个NodeManager的健康状况.
  • 从角色NodeManager: 统计汇报集群资源给RM,当前服务器集群资源的使用和容器拆分.监督资源回收

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

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

在这里插入图片描述

ResourceManager:整个集群的资源调度者, 负责协调调度各个程序所需的资源。
NodeManager:单个服务器的资源调度者,负责调度单个服务器上的资源提供给应用程序使用。

在这里插入图片描述

3.2 YARN容器

 我们要在服务器上分配资源,怎么才能准确的分配资源呢?
这个时候我们就要引入容器这个概念。

容器机制:容器(Container)是YARN的NodeManager在所属服务器上分配资源的手段

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

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

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

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

在这里插入图片描述
注意:
分配集群资源时,容器可以合并,但是不能拆分.

4. MapReduce & YARN 的部署

4.1 Yarn集群规划

YARN的集群规划

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

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

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

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

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

4. 2 Yarn部署

前提:Yarn的部署实在hdfs已经部署成功下完成的。
所以大家需要先去部署hdfs大家可以参考我的上一篇博客。
Hdfs的基础概念与部署🤞🤞🤞

  1. 先关闭HDFS集群
stop-dfs.sh
  1. 修改配置文件
    先进入目录下进行修改
 cd  /export/server/hadoop/etc/hadoop

3.修改mapred-site.xml文件

大家主需要把我下面的代码直接复制过去就可以。

<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property><!-- MR程序历史服务器端地址 -->
<property><name>mapreduce.jobhistory.address</name><value>node1:10020</value>
</property><!-- 历史服务器web端地址 -->
<property><name>mapreduce.jobhistory.webapp.address</name><value>node1:19888</value>
</property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
  1. 配置 yarn-site.xml文件

额外配置项的功能后续会慢慢接触到
目前先复制粘贴配置上使用即可

同理:直接复制

<!-- 设置YARN集群主角色运行机器位置 -->
<property><name>yarn.resourcemanager.hostname</name><value>node1</value>
</property><!-- 为MapReduce开启shuffle服务 -->
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property><!-- NodeManager本地数据存储路径 -->
<property><name>yarn.nodemanager.local-dirs</name><value>/data/nm-local</value>
</property><!-- NodeManager日志数据存储路径 -->
<property><name>yarn.nodemanager.log-dirs</name><value>/data/nm-log</value>
</property><!-- 设置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>
  1. 修改完node1上的配置文件后,需要远程发送到node2和node3中
scp -r /export/server/hadoop root@node2:/export/server
scp -r /export/server/hadoop root@node3:/export/server

4.3 查看YARN的WEB UI页面

我们在配置完Yarn文件之后,通用端口号访问Yarn的页面
能进入到这个页面,说明我们的Yarn配置成功

node1:8088

在这里插入图片描述

5. MapReduce & YARN 初体验

我们这里就只是简单的了解一下怎么使用,具体的使用我们在后面会详细的说明。

5. 1 Yarn集群的启停

我们在之前学过hdfs的启停

  • yarn和hdfs是一样的:通过start和stop
# 启动yarn集群
start-yarn.sh
# 停止yarn集群
stop-yarn.sh
  • 当然我们也可以通过单启单停
yarn --daemon start|stop|status  resourcemanager或者nodemanager
  • 我们还可以直接全部启动所有的服务:一键自动hdfs和yarn集群
# 启动
start-all.sh
# 终止
stop-all.sh

5.2 执行mapreduce任务

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

  1. 求Π
    先进入到这个目录下
 cd /export/server/hadoop/share/hadoop/mapreduce

在这里插入图片描述
使用已经有的命令
注意:这个命令是我们已经封装好的

hadoop jar hadoop-mapreduce-examples-3.3.4.jar pi 3 1000

在这里插入图片描述
2. 词频统计

# 1. 创建一个文件words.txt内部书写如下单词组合
itheima itcast itheima itcast
hadoop hdfs hadoop hdfs
hadoop mapreduce hadoop yarn
itheima hadoop itcast hadoop
itheima itcast hadoop yarn mapreduce# 2. 创建输入和输出目录,并且将words文件上传到输入目录中
hadoop fs -mkdir -p /input/wordcount
hadoop fs -mkdir /output
hadoop fs -put words.txt /input/wordcount/# 3. 执行示例
hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount 
hdfs://node1:8020/input/wordcount 
hdfs://node1:8020/output/wc# 注意: 输入目录必须存在,输出目录必须不存在,否则报错

6. 历史服务器

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

我们需要配置一下历史服务器:

 cd  /export/server/hadoop/etc/hadoop

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

在这里插入图片描述

我们直接通过端口号19888,通过浏览器访问
node1:19888

在这里插入图片描述

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

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

相关文章

深度学习实战73-基于多模态CLIP模型的实战项目,CLIP模型的架构介绍与代码实现

大家好,我是微学AI,今天给大家介绍一下深度学习实战73-基于多模态CLIP模型的实战项目,CLIP模型的架构介绍与代码实现。多模态CLIP(Contrastive Language-Image Pre-training)模型是一种深度学习模型,其核心设计理念是通过大规模的对比学习训练,实现图像与文本之间的跨模…

【JAVASE】面向对象程序三大特性之一( 封装)

✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609;\n &#x1f34e;个人主页&#xff1a;再无B&#xff5e;U&#xff5e;G-CSDN博客 目标&#xff1a; 1.包的使用 2.static关键字的使用 3.代码…

Python+Vuecil笔记

Nginx 进入目录: C:\nginx-1.20.2\nginx-1.20.2 start nginx 开始 nginx -s stop 停止 nginx -s quit 退出CSS 通过标签去写css 循环展示数据 JS 点击时执行事件 Django 配置media 在seetings里面修改 STATIC_URL /static/ MEDIA_URL /upload/ MEDIA_ROOT os.pat…

windows terminal美化教程

安装terminal 微软商店下载安装terminal 配置文件 进入terminal&#xff0c;打开设置。 {"$schema": "https://aka.ms/terminal-profiles-schema",// global settings"profiles": {// profile settings"defaults": {// default sett…

阿里云服务器租赁一年收费标准

阿里云服务器租用价格表2024年最新&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元&#xff0c;ECS u1服务器2核4G5M固定带宽199元一年&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;2核…

【亲测有效】微信公众号设置菜单栏显示,未开启自定义菜单,微信公众平台自定义菜单接口开发

微信公众平台自定义菜单接口开发 问题:运营人员在设置微信公众号设置菜单栏显示,未开启自定义菜单解决方案(微信公众平台自定义菜单接口开发):自定义菜单-创建接口请求链接完整代码第一步:在WeChat类里添加代码情况一:没有WeChat类情况,如果已有请看情况二情况二:已有…

【系统架构师】-软件架构设计

1、软件架构的概念 架构的本质 1、软件架构为软件系统提供了一个结构、行为和属性的高级抽象。 2、软件架构风格是特定应用领域的惯用模式&#xff0c;架构定义一个词汇表和一组约束。 架构的作用 1、软件架构是项目干系人进行交流的手段。 2、软件架构是可传递和可复用的模型…

番茄 短abogus补环境

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章…

端到端单倍型参考基因组揭示了三倍体香芽蕉型香蕉亚基因组的分歧和疾病抵抗力-文献精读-5

T2T基因组文献分享Telomere-to-telomere haplotype-resolved reference genome reveals subgenome divergence and disease resistance in triploid Cavendish banana 三倍体植物基因组的文献&#xff0c;各位同仁还有什么有特色的基因组评论区留言~ 摘要 香蕉是世界上最重要…

JavaEE——手把手教你实现简单的 servlet 项目

文章目录 一、什么是 Servlet二、创建一个简单的 Servlet 程序1. 创建项目2.引入依赖3. 创建目录4.编写代码5. 打包程序6. 部署7.验证整体过程总结 三、使用 Smart Tomcat 插件简化项目创建四、创建项目时可能遇到的几个问题。 一、什么是 Servlet Servlet 是一种实现 动态页面…

12、最小覆盖子串

如何想到这个解法 问题的特点&#xff1a; 首先&#xff0c;认识到这是一个关于子串的问题&#xff0c;而且需要考虑子串的最小长度。这提示我们可能需要使用一种方式来逐步探索不同的子串。滑动窗口的适用性&#xff1a;滑动窗口是处理子串问题的常用技巧&#xff0c;特别是当…

【图像分割】nnUnetV1与V2的Linux部署与应用命令

以前觉得麻烦&#xff0c;一直没用过nnunet&#xff0c;虽然知道它很火&#xff0c;最近一个契机&#xff0c;部署使用了一下nnunet&#xff0c;记录一下其部署和使用的方法与命令。 1、部署 首先&#xff0c;我有一个环境&#xff0c;这个环境可以是以前就有的&#xff0c;也可…

1.c++入门(命名空间、缺省参数、函数重载、引用、内联函数、for循环、auto关键字、指针空值nullptr)

1.c的第一个程序 // 方法一 #include<iostream>// namespace为命名空间的关键字&#xff0c;std为空间名&#xff1b; C标准库的东西放进std命名空间 using namespace std; int main() {cout << "hello world" << endl;return 0; }// 方法二 #in…

YOLOv8的多分类模型如何计算准确率(Accuracy)、精确率(Precision)、召回率(recall)和F1-Score模型评估参数

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.6p1(亲测无问题,建议收藏)

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…

【leetCode】2810. 故障键盘

文章目录 [2810. 故障键盘](https://leetcode.cn/problems/faulty-keyboard/)思路一&#xff1a;模拟代码&#xff1a;思路二&#xff1a;双端队列代码&#xff1a; 2810. 故障键盘 思路一&#xff1a;模拟 用StringBuilder来拼贴字符遍历字符串&#xff0c;如果遇到i,对拼贴好…

注解,自定义注解和元注解

1.注解 1.1.注解概述、作用 注解&#xff08;Annotation&#xff09;&#xff0c;也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性&#xff0c;与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面&#xff0…

《深入浅出多模态》:多模态经典模型CLIP

🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于 前沿论文解读、资料共享、行业最新动态以、实践教程、求职…

逆向案例14——cnki学术翻译AES加密分析,涉及保持会话和获取token值

python代码&#xff1a; import execjs import requests UA "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" token_url "https://dict.cnki.net/fyzs-front-api/getToken" url …

图像分割-RSPrompter

文章目录 前言1. 自动化提示器1.1 多尺度特征增强器1.2 RSPrompterAnchor-based PrompterQuery-based Prompter 2. SAM的扩展3. 结果WHU数据集NWPU数据集SSDD数据集 前言 《RSPrompter: Learning to prompt for remote sensing instance segmentation based on visual foundati…