Hadoop三大“金刚”完美剖析 ─────── HDFS、MapReduce、YARN

这篇具有很好参考价值的文章主要介绍了Hadoop三大“金刚”完美剖析 ─────── HDFS、MapReduce、YARN。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HDFS组件

储存文件的Block数据块

因为HDFS是分布式储存文件的模式,所以在储存文件的数据时,会将文件切分为大小一致的数据块,如果出现文件大小不是128M的倍数时,那么最后一个文件会与之前切分文件大小不一致。被切分成的数据块就是Block块,NameNode将Block块进行分布式储存到DataNode中。   (Block块的默认大小是128M)

hadoop组件的安全机制,hadoop,hdfs,mapreduce,yarn

HDFS三大机制

副本机制:为了保证数据的安全和效率,将每个BLOCK块存储到多个副本中
第一副本:
优先本机,否则就近随机
第二副本:
随机保存在与第一副本不同的机柜服务器上
第三副本:
随机保存在与副本二同一机柜的不同服务器上

负载均衡机制:
NameNode为了保证DataNode中Block块大小一样,分配储存任务时,会优先分配到余量比较大的DataNode

心跳机制:
(NameNode与DataNode的沟通)

DataNode每3秒会向NameNode发送自己状态信息,当DataNode 30秒不向NameNode发送自己的状态信息时,NameNode会每隔5分钟发送一次确认消息,连续两次后,没有收到回复,就会认定DataNode宕机了。

HDFS数据的写入原理

1、首先客户端发送上传文件请求到 NameNode

2、其次 NameNode 判断客户端是否有权限,如果有就判断该目录下是否已经存在该文件,确认有权限并且存在文件就执行下一步。

3、第三步,客户端会对文件进行切块成最大为默认128MB大小的块,然后再向 NameNode发送请求将‘Block块’上传到哪里。

4、然后 NameNode 根据 HDFS三大机制 找到储存该块的 DataNode 列表。

5、紧接着客户端接收到 DataNode 列表后与列表中的节点连接形成传输管道,再通过数据包(MAX=64KB) 的方式传输数据,并建立 ACK(方向应答机制)
6、具体过程是:

        假设有三个节点第一节点为 node1 第二节点为 node2 第三节点为 node3node1 接收到第一个数据包后向 node2 发送接收到的数据包,同时又向客户端反馈并且接收第二个数据包,node2 向 node1 发送 ACK确认机制,又向 node3 发送接收到的数据包, node3 接收到数据包后,向 node2 发送 ACK确认机制

hadoop组件的安全机制,hadoop,hdfs,mapreduce,yarn

HDFS读取流程

1、首先客服端向 NameNode 发送读取数据请求。

2、其次 NameNode 判断是否有读取权限,如果有就判断该文件是否存在,不存在直接报错。如果存在就根据相应的原理返回该文件的 Block块 地址。

3、然后客户端根据地址读取存储在 DataNode Block块 的信息。如果之前读取是部分 Block块 的信息,客户端会再次请求 NameNode 从而获取剩余 Block块 地址,重新读取,直到全部读取。最后按读取的 Block块 进行拼接,得到完整文件。

hadoop组件的安全机制,hadoop,hdfs,mapreduce,yarn

HDFS元数据的介绍和元数据的存储流程

元数据的分类主要分为两大类

因为 内存处理速度快,但是极其消耗资源,而且一旦机器故障断电,内存数据将会丢失,所以HDFS对元数据的管理使用了内存元数据和文件元数据来分工合作。

内存元数据 :NameNode  运行过程中产生的元数据会先保存在内存中,再保存到文件元数据中。

文件元数据: 存储在 Edits 编辑日志文件和 Fsimage 镜像文件中

 在了解元数据的存储整个流程之前,我先介绍一下在整个流程中主要的的两个文件 Edits Fsimage

Edits 编辑日志文件: 记录 HDFS 的每次操作(文件创建,删除或修改),即为 NameNode 处理客户端的操作,并且 HDFS 的每次操作首先会被记录到 Edits 文件中。

Fsimage 镜像文件: 记录某一个时间节点前的当前文件系统全部文件的状态和信息,是元数据的一个持久化的检查点,所以它储存着整个系统的所有目录和文件元数据信息,它隶属于NameNode  管理的镜像文件之一。

1、如果 NameNode 首次启动时,NameNode 会自动生成 Edits Fsimage ,当再次启动,内存会加载储存在 Fsimage 文件中的数据。

2、当客户端对 HDFS 进行操作时,NameNode 将客户端的操作储存到内存中,然后执行操作,并且将记录储存到 edits_inprogress 文件中。

3、当 edits_inprogress 文件·储存达到了一定值时,edits_inprogress 文件会将数据序列化写入进 Edits 备份文件中

4、然后 edits_inprogress 会将自己的文件名改写成最新的一次文件名编号

5、当 SecondaryNameNode 检测到自己距离上次检查已经有一个小时或者事务数量达到100w时,SecondaryNameNode 会向 NameNode 询问,是否要合并 Edits 文件和 Fsimage 文件。

6、NameNode 发布指令 SecondaryNameNode 合并文件时,SecondaryNameNode 会将 Edits 文件 和 Fsimage 文件 拷贝加载到本地

7、然后将两个文件加载到内存中进行合并,合并完成后,会生成 fsimage_checkpoint 文件

8、之后 NameNode 会将 SecondaryNameNode 中生成的 fsimage_checkpoint 文件拷贝到本地

9、NameNode 将拷贝的 fsimage_checkpoint 文件改名为 Fsimage ,覆盖原来的 Fsimage 文件。

hadoop组件的安全机制,hadoop,hdfs,mapreduce,yarn

HDFS归档机制

当每个小文件储存到HDFS中,每个小文件占用一个block块,非常浪费资源,所以将小文件进行归档处理,将需要使用的小文件尽量合并到一个块中,这个过程称为归档机制。

 hadoop archive -archiveName 文件名.har -p 打包文件路径 存储路径

HDFS安全模式

在集群安全模式下,客户端只能读取数据,不能操作数据,安全模式是对数据进行保护状态。

hdfs dfsadmin -safemode get                          --查看

hdfs dfsadmin -safemode enter                       --开启

hdfs dfsadmin -safemode leave                       --离开

HDFS文件操作

增:

hdfs dfs -put 文件路径 上传路径  / hadoop fs -put 文件路径 上传路径

hdfs dfs -appendToFile 文件路径 上传路径  / hadoop fs -appendToFile 文件路径 上传路径

hdfs dfs -touch 创建文本路径  / hadoop fs                        下面代码如上所示,只需要加上后

hdfs dfs -mkdir 创建文件夹路径  / hadoop fs                       面的参数即可,/ --是或的意思

hdfs dfs -mkdir -p 创建多级文件夹路径  / hadoop fs

删:

hdfs dfs -rm 文件路径  / hadoop fs

hdfs dfs -rm -r 文件夹路径  / hadoop fs

改:

hdfs dfs -cp 文件路径 复制到文件路径  / hadoop fs

hdfs dfs -mv 文件路径 移动到文件路径  / hadoop fs

查:

hdfs dfs -ls 文件路径  / hadoop fs

hdfs dfs -cat 文件路径  / hadoop fs

MapReduce组件 

MR任务对圆周率和词频统计的计算

使用jar包对数据进行计算

圆周率:hadoop jar jar包名 pi 参数1 参数2 (参数1是任务次数,参数2是任务取样次数)

单词个数计算:hadoop jar jar包名 读取文件位置 写入计算文件位置

(读取文件位置必须有文件并且写入计算位置不能有文件,不然会报错)

MapReduce 三大阶段

map阶段:

1、在MAP阶段首先将文件切块,每个块对应一个 Maptask 进程,然后调用 Map 方法将Block块 进行切分,切分的数据存储到 buffer环形内存缓冲区,buffer官方默认是100mb,当储存大于80%时,就会溢写成有一个文件。

shuffle阶段:

2、在shuffle阶段将文件进行【分区】,再对分好区的文件根据英文字母顺序进行【排序】,当设置了【规约】时,会对当前 Maptask 任务中的相应数据进行组合,最后在 Maptask 中进行数据合并,然后在 Reducetask 中对数据进行【分组】。

reduce阶段:

 3、在reduce阶段进行数据合并,然后封装输出组件,写到目的地文件中。

hadoop组件的安全机制,hadoop,hdfs,mapreduce,yarn

YARN组件

YARN的执行流程

1、当客户端产生MR计算任务提交给 ResourceManager

2、ResourceManager application manager 通知并指定 NodeManager 创建 appmaster

3、创建完 appmaster 后,appmaster 会告知 application manager 自己的状态,然后会向Resource Scheduler 中申请相应的资源。

4、申请资源后 appmaster 会通知所有 NodeManager 给对应的MR计算来分配资源。

5、分配完资源开始计算,同时会一直向appmaster汇报自己的情况,直到计算完成。

6、计算完成后,appmaster 会向 ResourceManager 申请注销自己,所有申请的资源被RM回收。

 hadoop组件的安全机制,hadoop,hdfs,mapreduce,yarn

YARN的三大调度器 

先进行先出调度器

优点:保证每个任务都能拿到充足的资源

缺点:会导致没有资源的任务出现等待现象

公平调度器

优点:保证了每个任务都有资源可以用

缺点:在执行大任务时,会出现执行时间比较长

容器调度器

优点:保证了每个任务有大致相应的资源使用

缺点:当任务过多时,还是会出现任务等待,执行时间比较长  

以上就是小浪本次发布的内容,如果对友友您有帮助,还麻烦您给小浪点个关注 和 赞,这是对小浪莫大的支持,蟹蟹友友们,小浪还会持续更新,分享自己在学习整个过程中遇到的问题! 文章来源地址https://www.toymoban.com/news/detail-846237.html

到了这里,关于Hadoop三大“金刚”完美剖析 ─────── HDFS、MapReduce、YARN的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Hadoop——HDFS、MapReduce、Yarn期末复习版(搭配尚硅谷视频速通)

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

    2024年01月17日
    浏览(42)
  • 大数据期资料2023 Beta版 - Hadoop、HDFS、MapReduce、Hive、ZooKeeper、Kafka、HBase详解

    了解大数据概念、Hadoop、HDFS、MapReduce、Hive、ZooKeeper、Kafka、HBase等技术,包括特点、命令操作和启动关闭方法。获取2023年大数据资料Beta版。

    2024年02月06日
    浏览(238)
  • 基于Hadoop的MapReduce网站日志大数据分析(含预处理MapReduce程序、hdfs、flume、sqoop、hive、mysql、hbase组件、echarts)

    需要本项目的可以私信博主!!! 本项目包含:PPT,可视化代码,项目源码,配套Hadoop环境(解压可视化),shell脚本,MapReduce代码,文档以及相关说明教程,大数据集! 本文介绍了一种基于Hadoop的网站日志大数据分析方法。本项目首先将网站日志上传到HDFS分布式文件系统

    2024年02月16日
    浏览(65)
  • 云计算与大数据之间的羁绊(期末不挂科版):云计算 | 大数据 | Hadoop | HDFS | MapReduce | Hive | Spark

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 大数据是需求,云计算是手段。没有大数据,就不需要云计算;没有云计算,就无法处理大数据。 所有的计算能力、存储能力、和各种各样功能的应用都通过网络

    2024年02月04日
    浏览(64)
  • 一篇搞定分布式大数据系统所有概念,包括有Hadoop、MapReduce、HDFS、HBASE、NoSql 、ZooKeeper 、Reidis 、Nginx 、BASE、CAP定义、特点和应用场景

    1.1hadoop定义和特点 Hadoop定义: Hadoop是一个开源的分布式计算框架,用于存储和处理大规模数据集。它基于Google的MapReduce论文和Google文件系统(GFS)的设计理念,并由Apache软件基金会进行开发和维护。 Hadoop的主要特点包括: 分布式存储:Hadoop通过分布式文件系统(Hadoop Dist

    2024年02月03日
    浏览(58)
  • HDFS+ MapReduce 数据处理与存储实验

    了解HDFS的基本特性及其适用场景; 熟悉HDFS Shell常用命令; 学习使用HDFS的Java API,编程实现HDFS常用功能; 了解MapReduce中“Map”和“Reduce”基本概念和主要思想; 掌握基本的MapReduce API编程,并实现合并、去重、排序等基本功能; 实验平台:基于实验一搭建的虚拟机Hadoop大数

    2023年04月23日
    浏览(65)
  • 云计算系列(2)初识HDFS与MapReduce

    前言 上节课主要是完成了Hadoop的安装,这次主要完成以下内容 配置HDFS web端查看HDFS文件系统 配置yarn web端查看yarn系统 配置mapreduce 运行MapReduce的WordCount 程序 上次课完成到如下图的状态 还需要改善一下,就是我们在root用户下解压安装他的拥有者是数字不是root 通过chown命令更

    2024年02月03日
    浏览(37)
  • mapreduce 的工作原理以及 hdfs 上传文件的流程

    推荐两篇博文 mapreduce 的工作原理: 图文详解 MapReduce 工作流程_mapreduce工作流程_Shockang的博客-CSDN博客 hdfs 上传文件的流程 HDFS原理 - 知乎

    2024年02月10日
    浏览(49)
  • HDFS、YARN、MapReduce概述及三者之间的关系(图解)

    1、HDFS定义 HDFS(Hadoop Distributed File System) 是一种分布式文件系统,用于处理在商业硬件上运行的大型数据集。 它用于将单个 Apache Hadoop 集群扩展到数百 (甚至数千)个节点。 HDFS 是 Apache Hadoop 的主要组件之一,其他组件包括 MapReduce 和 YARN。 HDFS的使用场景:适合一次写入,

    2024年02月20日
    浏览(43)
  • HDFS 架构剖析

    目录 一、HDFS 架构整体概述 二、HDFS 集群角色介绍  2.1 整体概述  2.2 主角色:namenode  2.3 从角色:datanode  2.4 主角色辅助角色: secondarynamenode  三、HDFS 重要特性 3.1 主从架构  3.2 分块存储机制 3.3 副本机制  3.4 namespace  3.5 元数据管理  3.6 数据块存储          

    2024年02月09日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包