当前位置:   article > 正文

HDFS分布式文件系统详解_hrfs文件系统

hrfs文件系统

目录

什么是文件系统?

为什么出现了HDFS分布式文件系统

HDFS的设计目标

分布式文件系统的结构

HDFS 读写文件流程


什么是文件系统?

文件系统是操作系统的一部分,它是一个软件程序,主要用于管理和存储文件。文件系统提供了各种接口和命令,便于用户通过他们对文件进行各种操作。

为什么出现了HDFS分布式文件系统

大数据时代的到来,人们对数据的依赖性越来越大、上网产生的数据量急剧增加、信息量爆炸式增长。因此,只是通过增加计算机的硬盘容量处理数据难以达到要求,这样将所有的数据存储和处理在同一台计算机上便不可行了。此时通过增加计算机的横向容量,即增加计算机的数量,将数据分布在多台计算机上的Hadoop 分布式计算便诞生了。而HDFS是Hadoop 分布式计算的一个重要组成部分,分布式文件系统。

HDFS的设计目标

  1. 高容错性。HDFS被设计成可运行于由成千上万的PC或服务器组成的集群上,在系统处理数据的过程中,硬件发生故障可能是常态,为了保证数据的正常处理,数据在HDFS中会自动保存多份,并且存储于不同的机架上,这样就可以大大增加系统容错性。
  2. 流式数据访问。通过分块机制,不需要等待全部数据的到来,只需要将数据分块,一块一块的进行处理,增加实时性。
  3. 面向大数据集。运行于HDFS之上的应用一般都具有大数据集。HDFS不适合小文件的处理,占用 namenode 节点。
  4. 不允许数据修改。由于HDFS处理的都是大数据集,因此,当数据上传到Hadoop集群后,会进行文件的切割、复制、分发等操作,当写好的数据被修改时相当于再来一遍该过程。
  5. 移动计算程序而不是计算数据。在靠近数据存储的位置进行数据处理是最有利的方式,这样减少了大量数据的传输,消除了网络的拥堵。因此HDFS提供了接口来让代码移动到靠近数据存储的位置。

分布式文件系统的结构

HDFS 架构主要由四部分组成,Client、NameNode、SecondaryNameNode、DataNode。

  • Client 为客户端。主要功能如下:
  1. 文件切分 。当文件要写入HDFS时,Client 会将文件切分成无数的block,一个一个的依次写入。
  2. 与namenode 交互。从namenode 获取文件所要存储的位置。
  3. 与datanode 交互。进行数据传输,写入或读取数据。
  4. 管理和访问HDFS。
  • namenode为名称节点,也称为主节点。
  1. 管理着数据节点和数据块之间的映射关系。
  2. 可以在默认的情况下进行文本复制。
  3. 响应客户端请求(上传、下载、复制文件信息等 )。
  • datanode为数据节点。
  1. 管理数据块,执行数据块的读写操作。数据节点中保存着数据块,数据块用来存储数据。
  2. datanode 保持着与namenode 之间的通讯,以执行namenode 的指令。同时namenode 可以确保datanode 是否正常工作,如果超过10分钟的时间没有接受datanode 的指令,则会将该地对应的数据块复制到其他正常的datanode 中。
  • 块:在操作系统中,文件系统一般会将磁盘划分为相同大小的 “磁盘块”,用来进行文件读写,它是文件系统进行读写的最小单位,在 HDFS 中,同样也是如此,但不同的是,HDFS 中块的大小一般为64MB或128MB。
  • 名称节点(主节点namenode ):保存文件的属性信息,便于用户能够访问到所有的数据块。

HDFS 读写文件流程

写文件流程:

  1. 首先客户端向namenode 请求上传文件,并传输想要创建文件的目录。
  2. namenode 检查该目录树是否可以创建文件,并响应给客户端可以上传文件。
  3. Client 请求上传第一个block。
  4. namenode 返回可以存储数据的三个节点。
  5. Client 请求datanode建立Block 传输通道,以此来实现数据的多份存储。
  6. datanode 返回建立通道成功。
  7. Client 直接向namenode 返回的三个datanode 节点写入数据。

读文件流程:

 

  1.  首先客户端向namenode 请求下载,传入文件的目录。
  2. namenode 返回给Client 文件的存储位置(查询文件元数据,得到存储文件的datanode 地址)。
  3. Client 请求读数据。
  4. 采用就近原则读取datanode 中的数据。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/644777
推荐阅读
相关标签
  

闽ICP备14008679号