大数据技术之Hadoop:HDFS存储原理篇(五)

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

目录

一、原理介绍

1.1 Block块

1.2 副本机制

二、fsck命令

2.1 设置默认副本数量

2.2 临时设置文件副本大小

2.3 fsck命令检查文件的副本数

2.4 block块大小的配置

三、NameNode元数据

3.1 NameNode作用

3.2 edits文件

3.3 FSImage文件

3.4 元素据合并控制参数

3.5 SecondaryNameNode的作用

四、HDFS的读写流程

4.1 写入流程

4.2 读取流程


一、原理介绍

1.1 Block块

HDFS分布式文件存储,通常是将1个文件拆分成多个部分,然后分别发送到不同服务器节点上。

 大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java

问题:不同的文件大小不一,粗暴的拆分然后放到服务器不同节点,会导致各个部分的大小也不一样,不利于统一管理。

解决办法:设定统一的管理单位,block块。

  •  Block块,HDFS最小存储单位
  • 每个256MB(可以修改)

这样可以将文件分成多个Block块,不同的Block块存入对应服务器。

举例说明

某个文件大小1G,那么理论上可以分为4个Block块。

如果集群有三台服务器,那么某台服务器放2个Block块,然后其他两台服务器各1个Block块。

1.2 副本机制

如果不备份,假如某个块损坏了,那么就会导致整个文件不可用。

所以,副本机制是保障数据安全的非常重要的机制。

大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java

二、fsck命令

2.1 设置默认副本数量

大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java

默认的HDFS文件的副本数量就是3个。

当然这个值可以修改,具体可以在hdfs-site.xml中配置如下属性

<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>

这个属性默认是3,一般情况下,我们无需主动配置(除非需要设置非3的数值)

如果需要自定义这个属性,请修改每一台服务器的hdfs-site.xml文件,并设置此属性。

2.2 临时设置文件副本大小

如果不加限制,我们创建的文件或者上传的文件,默认副本数就是上面设置的值。

但是单次文件上传,我们也可以指定某个文件拥有多少个副本。

hadoop fs -D dfs.replication=2 -put test.txt /tmp/

大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java对于已经存在HDFS的文件,修改dfs.replication属性不会生效,如果要修改已存在文件可以通过命令

hadoop fs -setrep [-R] 2 path

如上命令,指定path的内容将会被修改为2个副本存储。

-R选项可选,使用-R表示对子目录也生效。

2.3 fsck命令检查文件的副本数

我们要查看详细的文件副本数信息,可以通过如下命令:

hdfs fsck path [-files [-blocks [-locations]]]

fsck可以检查指定路径是否正常

        -files可以列出路径内的文件状态

        -files -blocks  输出文件块报告(有几个块,多少副本)

        -files -blocks -locations 输出每一个block的详情

大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java

2.4 block块大小的配置

默认情况下,block块的大小是256MB,当然我们也可以修改。

  <property>
    <name>dfs.blocksize</name>
    <value>268435456</value>
    <description>设置HDFS块大小,单位是b</description>
  </property>

三、NameNode元数据

3.1 NameNode作用

NameNode作用:管理Block块。

hdfs中,文件是被划分了一堆堆的block块,那如果文件很大、以及文件很多,Hadoop是如何记录和整理文件和block块的关系呢?

答案就在于NameNode。

NameNode基于一批edits和一个fsimage文件的配合完成整个文件系统的管理和维护。

3.2 edits文件

edits文件,是一个流水账文件,记录了hdfs中的每一次操作,以及本次操作影响的文件其对应的block。

大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java

大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java

大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java

大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java 大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java

3.3 FSImage文件

将全部的edits文件,合并为最终结果,即可得到一个FSImage文件

大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java

小结

NameNode基于editsFSImage的配合,完成整个文件系统文件的管理。

1. 每次对HDFS的操作,均被edits文件记录

2. edits达到大小上线后,开启新的edits记录

3. 定期进行edits的合并操作

  • 如当前没有fsimage文件,  将全部edits合并为第一个fsimage
  • 如当前已存在fsimage文件,将全部edits和已存在的fsimage进行合并,形成新的fsimage

4. 重复123流程

3.4 元素据合并控制参数

对于元数据的合并,是一个定时过程,基于:

dfs.namenode.checkpoint.period,默认3600(秒)即1小时

dfs.namenode.checkpoint.txns,默认1000000,即100W次事务

只要有一个达到条件就执行。

检查是否达到条件,默认60秒检查一次,基于:

dfs.namenode.checkpoint.check.period,默认60(秒),来决定。

3.5 SecondaryNameNode的作用

对于元数据的合并,还记得HDFS集群有一个辅助角色:SecondaryNameNode吗?

大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java

没错,合并元数据的事情就是它干的

SecondaryNameNode会通过httpNameNode拉取数据(editsfsimage

然后合并完成后提供给NameNode使用。

四、HDFS的读写流程

4.1 写入流程

大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java

1. 客户端向NameNode发起请求

2. NameNode审核权限、剩余空间后,满足条件允许写入,并告知客户端写入的DataNode地址

3. 客户端向指定的DataNode发送数据包

4. 被写入数据的DataNode同时完成数据副本的复制工作,将其接收的数据分发给其它DataNode

5. 如上图,DataNode1复制给DataNode2,然后基于DataNode2复制给Datanode3DataNode4

6. 写入完成客户端通知NameNodeNameNode做元数据记录工作

关键信息点:

NameNode不负责数据写入,只负责元数据记录和权限审批

客户端直接1DataNode写数据,这个DataNode一般是离客户端最近(网络距离)的那一个

数据块副本的复制工作,DataNode之间自行完成(构建一个PipLine,按顺序复制分发,如图12, 234

4.2 读取流程

大数据技术之Hadoop:HDFS存储原理篇(五),大数据技术,大数据,hadoop,hdfs,java

1、客户端向NameNode申请读取某文件

2 NameNode判断客户端权限等细节后,允许读取,并返回此文件的block列表

3、客户端拿到block列表后自行寻找DataNode读取即可

关键点:

数据同样不通过NameNode提供

NameNode提供的block列表,会基于网络距离计算尽量提供离客户端最近的

这是因为1block3份,会尽量找离客户端最近的那一份让其读取。

最难不过坚持,继续下一关~文章来源地址https://www.toymoban.com/news/detail-699349.html

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

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

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

相关文章

  • 大数据技术之Hadoop(HDFS)——超详细

    1.1 HDFS产出背景及定义 1)HDFS产生背景 先给大家介绍一下什么叫HDFS,我们生活在信息爆炸的时代,随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这

    2024年02月03日
    浏览(56)
  • 尚硅谷大数据技术Hadoop教程-笔记03【Hadoop-HDFS】

    视频地址: 尚硅谷大数据Hadoop教程(Hadoop 3.x安装搭建到集群调优) 尚硅谷大数据技术Hadoop教程-笔记01【大数据概论】 尚硅谷大数据技术Hadoop教程-笔记02【Hadoop-入门】 尚硅谷大数据技术Hadoop教程-笔记03【Hadoop-HDFS】 尚硅谷大数据技术Hadoop教程-笔记04【Hadoop-MapReduce】 尚硅谷

    2023年04月08日
    浏览(98)
  • 大数据面试高频题目 - 深入解析 Hadoop:探索强大的HDFS存储系统

    在大数据面试中,深刻理解 Hadoop 是取得成功的关键之一。以下是一些关于 Hadoop 的HDFS存储系统的高频面试题目以及解答思路和经验分享: 发起下载请求: 客户端创建分布式文件系统,向 NameNode 请求下载  user/warehouse/ss.avi  文件; 获取文件元数据:NameNode 返回目标文件的元

    2024年03月18日
    浏览(48)
  • Hadoop大数据技术-通过shell命令访问HDFS

    HDFS shell大致可以分为操作命令、管理命令、其他命令三类。 注意:当命令以“$”开头时,当前用户为普通用户;以“#”开头时,当前用户为root用户。 操作命令是以“ hdfs dfs ”开头的命令,用户可以通过执行这些命令,完成对文件的查找、上传、删除等操作。 [-p]:表示如

    2023年04月11日
    浏览(44)
  • 大数据技术之Hadoop:使用命令操作HDFS(四)

    目录 一、创建文件夹 二、查看指定目录下的内容 三、上传文件到HDFS指定目录下 四、查看HDFS文件内容 五、下载HDFS文件 六、拷贝HDFS文件 七、HDFS数据移动操作 八、HDFS数据删除操作 九、HDFS的其他命令 十、hdfs web查看目录 十一、HDFS客户端工具 11.1 下载插件 11.2 本地安装Had

    2024年02月09日
    浏览(46)
  • 大数据技术之Hadoop:HDFS集群安装篇(三)

    目录 分布式文件系统HDFS安装篇 一、为什么海量数据需要分布式存储 二、 分布式的基础架构分析 三、 HDFS的基础架构 四 HDFS集群环境部署 4.1 下载安装包 4.2 集群规划 4.3 上传解压 4.4 配置HDFS集群 4.5 准备数据目录 4.6 分发hadoop到其他服务器 4.7 配置环境变量 4.8 为普通用户授

    2024年02月14日
    浏览(51)
  • Hadoop:HDFS--分布式文件存储系统

    目录   HDFS的基础架构 VMware虚拟机部署HDFS集群 HDFS集群启停命令 HDFS Shell操作 hadoop 命令体系: 创建文件夹 -mkdir  查看目录内容 -ls  上传文件到hdfs -put 查看HDFS文件内容 -cat 下载HDFS文件 -get 复制HDFS文件 -cp 追加数据到HDFS文件中 -appendToFile HDFS文件移动 -mv  删除HDFS文件 -rm  

    2024年02月09日
    浏览(58)
  • HDFS Hadoop分布式文件存储系统整体概述

    整体概述举例: 包括机架 rack1、rack2 包括5个Datanode,一个Namenode( 主角色 )带领5个Datanode( 从角色 ),每一个rack中包含不同的block模块文件为 分块存储模式 。块与块之间通过replication进行 副本备份 ,进行冗余存储,Namenode对存储的 元数据进行记录 。该架构可以概括为一个 抽象

    2024年02月16日
    浏览(71)
  • Hadoop的分布式文件存储系统HDFS组件的使用

    存储整个HDFS集群的元数据(metaData) —— 整个集群中存储的目录和文件的索引 管理整个HDFS集群 接收客户端的请求 负责节点的故障转移 存储数据,是以block块的形式进行数据的存放。 默认情况下block块的大小是128M。 blocksize大小的计算公式: 寻址时间:下载文件时找到文件

    2024年02月09日
    浏览(77)
  • Hadoop 存储占用分析命令,查看 Hdfs 文件夹占用大小

    兼职公司 Hadoop 运维之后,经常要解决 Hdfs 空间占用的问题,不知道哪天谁又在集群上留下一大堆缓存文件也不清掉,Hadoop 本身默认就是三副本,人一多每个人留一点结果占用了一堆的存储空间。 在 Linux 上游 du 这个指令可以很轻松的结合 sort 对文件夹的大小进行排序,分析

    2024年02月15日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包