hadoop大数据入门HDFS、MapReduce、YARN的个人通俗理解

news2024/9/27 12:07:01

大数据时代,在数据量,计算量,计算时间上都是单机无法胜任的,通过简单的增强单机已经无法解决。普遍的解决方案为将多个单机组合起来进行存储和计算的分布式集群来处理。在这里插入图片描述
Hadoop支持使用普通机器组成可拓展的分布式主从集群实现了对大数据的分布式存储(HDFS)、分布式计算(MapReduce )和资源调度(YARN)。下面分别介绍原理和常用命令;
一、HDFS分布式存储文件系统
hdfs作为一个可以在多台机器上读写文件的分布式文件系统,它有几个问题,如何解决以及相关概念:

  1. 超大文件如果比单机硬盘还大,该如何存储和快速读取?
    答: 明显需要把大文件切分为多个"小块" ,然后存储到多台机器上,这样可以利用多台机器的io能力来快速读写。这个被切分的“小块”叫做block,默认是固定大小的,固定大小可以简化计算处理。
    hdfs在每台数据节点机器上启动一个DataNode进程专门负责block读写和记录block的信息;

  2. 文件切分的block保存在多台机器上,如何知道在哪些机器上,如何通信?
    答: hdfs设置为主从集群,专门有一个NameNode节点负责接收读写请求,对外提供目录;所以只要和这个NameNode节点通信即可。

  3. 文件切分的block保存在多台机器上,读写时如何知道他们的位置?
    答: hdfs专门有一个NameNode进程负责接收读写请求,并保存文件名和block的id,DataNode会上报block的信息。需要读取文件的时候,只要发请求给NameNode节点,它会根据元数据查询到对应的block位置(DataNode启动时会汇报block信息给NameNode),顺序读取block为流;
    在这里插入图片描述
    在这里插入图片描述

  4. 常用操作命令
    官方文档
    1.上传/下载
    将本地路径中的文件上传到hdfs
    hdfs dfs -put urls(hdfs文件) /opt/index (本地路径)

将hdfs中的文件下载到本地路径
hdfs dfs -get urls(hdfs文件) /opt/index (本地路径)
2.查看hdfs文件系统内文件列表
hdfs dfs -ls /
3.删除hdfs中的文件
hdfs dfs -rm urls
4.删除hdfs中的文件夹
hdfs dfs -rm -r urls
5.创建目录
hdfs dfs -mkdir urls
6.查看文件内容
hdfs dfs –cat urls
7.查看文件末尾内容
hdfs dfs –tail urls

二、MapReduce分布式计算
在这里插入图片描述
Hadoop MapReduce 是一个用于处理海量数据的编程模型和分布式计算框架,能让用户通过实现一些简单的接口就能完成对海量数据在上千台机器上实现并行计算的工作。
在这里插入图片描述
以WordCount这个统计文本中单词出现频率的小例子来看下MapReduce是如何进行分布式计算的。
在这里插入图片描述
Input:数据写入 HDFS;
Input Splits:就近分割成固定大小的块(128MB),将作为 Mapping 阶段的输入。每个 split 任务对应一个 mapping 任务;
Mapping: 将执行映射计算(类似于循环),1比1的根据业务逻辑将输入对映射成输出对。WordCount 例子中是按字分割(key),值就是简单的计1(value);
Shuffling:洗牌阶段类似于 SQL 查询中的根据 key 分组,相同 key 的键值对简单的放在一起,并交给 Reducer 做聚合;
Reducer:对分组数据做统计,本例就是对 value 做累加,最后输出结果到 HDFS。

在这里插入图片描述
代码参加https://blog.csdn.net/shy_snow/article/details/126617976
三、YARN资源调度
在这里插入图片描述
YARN 是资源协调服务器,包含资源管理(RM-NM)和任务执行(AM-Containers)两套机制。
ResourceManager (RM) :YARN 集群的主资源管理程序,仲裁整体资源并对请求做分配。通过 NM 监管节点资源,根据客户端请求,启动并监控 AM 服务,根据 AM 请求,在 NM 上启动其他 Container。
NodeManager (NM):运行在单个节点上的资源管理程序。日常向 RM 报告节点资源情况,接收 RM 分配任务并执行。重点功能包括创建、监控、汇报和杀死容器(NM在启动之前会将所有必要库复制到本地文件系统)。
YARN Client:YARN客户机,用来提交和启动YARN Application,需要与RM通信以尝试启动一个YARN 应用程序。
YARN Application:YARN的应用程序。一个应用程序包含一个负责资源申请的主进程(AM),以及若干个实际执行计算的 Container。
YARN Application Master(AM):应用程序的主管理进程(每个应用都会有一个),本身不参与计算,主要用来向RM协调资源。其本身也运行在YARN容器中。
YARN Container:YARN 容器本质上是在服务器上封装好的一个物理资源集合(包括CPU内核、RAM和磁盘),作为被调度的最小单元来执行的工作。每个节点上可以创建多个容器。

四、参考
[1]https://www.jianshu.com/p/2fa09d9c5b80
[2]https://blog.csdn.net/qq_30168227/article/details/122770339
[3]https://www.jianshu.com/p/2fa09d9c5b80

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

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

相关文章

SpringCloud之Hystrix服务熔断

Hystrix服务熔断1. 服务雪崩2. Hystrix 的概念3. Hystrix 的作用4. 服务熔断4.1 概念4.2 服务熔断解决哪些问题?4.3 案例5. 服务降级5.1 概念5.2 案例6. 服务熔断和降级的区别7. Dashboard 流监控分布式系统面临的问题复杂分布式体系结构中的应用程序有数十个依赖关…

At and Cron and Scheduling task

1.at 一次性任务 一次性使用,执行某条命令或者脚本,守护进程atd,默认安装以及开机启动。在输入完命令的时候,按CtrlD结束 now 5min 现在过后5分钟 teatime tomorrow 明天的下午茶时间-4点 noon 中午 5pm august 3 2016 2016年八月3号的下午5点…

linux平台下node cnpm的安装方法

linux node cnpm的安装方法:1、下载linux版的node,并放在“/home/node/”目录下 ;2、打开linux解压缩下gz;3、回到根目录,建立软连接;4、通过“npm install -g cnpm --registryhttps://registry.npm.taobao…

4、MYSQL常用函数(日期和时间函数)

目录 curdate():返回当前日期 curtime():返回当前时间 now():返回当前日期和时间 unix_timestamp(date):返回date的unix时间函数 fro…

再学C语言18:循环控制语句——while循环

3种基本的程序流:顺序、循环、分支 3种循环程序流:while、do while、for 伪代码(pseudocode):一种用简单的英语表示程序的方法,与计算机语言的形式相对应;伪代码有助于设计程序的逻辑 while循…

Python语言快速入门下2

目录 一、前言 二、字符串 【字符串】 【字符串格式化】 【字符串常用方法】 1)去掉空格和特殊字符 3)字符串的测试和替换函数 4)字符串的分割 5)连接字符串 6)截取字符串(切片) 7&a…

2022年「博客之星」,花落谁家? 大家来竞猜吧

一年一度的「博客之星」大赛如火如荼地进行着,大家都忙着评分、发帖、回帖.....今天发现我在分组的排名只有40多名,基本上算是放弃了。但是,看到本文的朋友,还是可以帮我拉拉票的!请点开链接给个五星评分: …

Linux下安装Fastdfs

一、前期准备工作 1、需要提前下载的安装包: (1)libfatscommon-1.0.43:FastDFS分离出的一些公用函数包 (2)fastdfs-6.06:FastDFS本体包 (3)nginx:nginx-1.2…

服装行业进销存软件哪个好?

好用的进销存软件有以下评判标准: 1. 能否为企业带来效益。理清自身在进销存管理中的难点以及进销存软件需要具备的功能。 2. 是否简单实用,人员是否上手容易。选购软件不易太复杂,会给前期软件使用造成人力、物力等压力。 3. 进销存软件的…

【SpringBoot应用篇】SpringBoot集成AntiSamy防御XSS(跨站脚本攻击)--过滤器实现

【SpringBoot应用篇】SpringBoot集成AntiSamy防御XSS(跨站脚本攻击)--过滤器实现XSS介绍AntiSamy介绍AntiSamy使用pomUserUserControllerXssFilterXssRequestWrapper配置类XSS介绍 XSS:跨站脚本攻击(Cross Site Scripting),为不和…

4、MYSQL常用函数(字符串)

目录 abs(x):返回x的绝对值 ceil(x):返回大于x的最小整数 floor(x):返回小于x的最大整数 mod(x,y):返回x/y的模 Rand(&a…

分析激光焊接机焊接不牢固的原因

激光焊接机在焊接时为什么会出现焊接不牢固呢?是不是激光焊接设备出现问题了?当激光焊接机进行焊接加工时,出现材料之间的焊接不牢固这会影响整体质量。这时,用户不可避免地会质疑激光焊接机的效果我们也是可以理解的。实质出现激…

javaEE初阶---多线程(初阶)

一 : 学习目标 认识多线程掌握多线程程序的编写掌握多线程的状态掌握什么是线程不安全及解决思路掌握synchronized、volatile关键字 二 : 初识线程 2.1 线程概念 线程(thread)是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进…

django使用二——restful框架使用

背景 前言: 前篇django使用一,已将基本的项目、应用创建并运行;见:django使用一——规范化创建 本篇则针对ViewSet及rest_framework初使用做介绍; 闲笔: 两束平行宇宙射线射入黑盒,在人们充满…

《计算机网络》——第六章知识点

第六章思维导图如下: 应用层对应用程序的通信提供服务。 域名解析:根据域名找IP地址 域名结构 FTP是基于客户/服务器(C/S)的协议。 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照FTP协议提供服务,进行文件传送的计算机就是FTP服…

对象类型的设计(简答题)

在实际项目开发中需要进行对象类型的设计,给你的问题是,在学生信息系统中需要你设计班级Classes类型和学生Student类型,为了便于数据的查询,需要建立对象之间的联系,比如一个班级有多个学生,每个学生属于一…

看完这篇,我不允许你还不会用Allegro显示PCB的3D模式

看完这篇,我不允许你还不会用Allegro显示PCB的3D模式 Allegro可以显示PCB的3D效果,利于查看和检查,如下图 具体操作如下 选择Set-up-user preferences选择Display

游戏党别错过,提升FPS试试这样

如果你准备畅玩游戏,却频繁掉帧,严重影响游戏体验,那这里有些提升FPS的小方法,游戏党别错过了。 整理主硬盘更改电源选项更新显卡驱动降低屏幕分辨率关闭其他应用程序并禁用启动项 方法一、整理主硬盘 1、打开文件资源管理器&am…

APP Inventor练习——蓝牙通信

文章目录前言一、蓝牙调试1.组件设计2.逻辑设计二、蓝牙对战1.组件设计2.逻辑设计3.效果展示总结前言 练习APP Inventor中蓝牙的使用,并为之前的项目APP小游戏——一个都不能死增加了蓝牙对战功能。 一、蓝牙调试 先写一个蓝牙调试的APP,用来收发文本 …

2023年七大网络攻击手段预测

受疫情和网络攻击的加持下,2022年对网络安全领域的人来说并不是轻松的一年,一系列备受瞩目的网络攻击、数据泄露事件打的网安人手忙脚乱,供应链攻击、勒索软件攻击、业务欺诈、关键基础设施攻击、大规模数据泄露、地缘政治相关黑客攻击等网络…