HDFS

分布式文件系统概述

相对于传统的本地文件系统而言,分布式文件系统(Distribute File System)是一种通过网络实现文件在多台主机上进行分布式存储的文件系统。分布式文件系统的设计一般采用“客户/服务机”模式,客户端以特定的通信协议通过网络与服务器建立连接,提出文件访问请求,客户端和服务器可以通过设置访问权限来限制请求方对底层数据存储块的访问。
目前,已经得到广泛应用的分布式文件系统主要包括GFS和HDFS等,后者是针对前者的开源实现。

计算机集群结构
  普通的文件系统只需要单个计算机节点就可以完成文件的存储和处理,单个计算机节点由处理器、内存、高速缓存和本地磁盘构成。
  分布式文件系统把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群。与之前使用多个处理器和专用高级硬件的并行化处理装置不同的是,目前分布式文件系统所采用的计算机集群都是由普通硬件构成的,这就大大降低了硬件上的开销。
  集群中的计算机节点存放在机架(Rack)上,每个机架可以存放8~64个节点,同一个机架上的不同节点之间通过网络互连(常采用吉比特以太网),多个不同机架之间采用另一级网络或交换机互连。

分布式文件系统的结构

1.在我们熟悉的Windows、Linux等操作系统中,文件系统一般会把磁盘空间划分为512字节一组,称为“磁盘块”,它是文件系统读写操作的最小单位,文件系统的块(Block)通常是磁盘块的整数倍,即每次读写的数据必须是磁盘块大小的整数倍。
2.与普通文件系统类似,分布式文件系统也采用了块的概念,文件被分成若干个块进行存储,块是数据读写的基本单元,只不过分布式文件系统的块要比操作系统中的块大很多。比如,HDFS默认的一个块大小是64MB。与普通文件系统不同的是,在分布式文件系统中,如果一个文件小于一个数据块的大小,它并不占用整个数据块的存储空间。

分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,这些节点分为两类:一类叫“主节点”Master Node),或者也被称为“名称节点”Name Node;另一类叫“从节点”Slave  Node,或者也被称为“数据点”Data Node。
  • 名称节点负责文件和目录的创建、删除和重命名等,同时管理着数据节点和文件块之间的映射关系,因此客户端只有访问名称节点才能找到请求的文件块所在的位置,进而到相应的位置读取所需文件块。数据节点负责数据的存储和读取,在存储时,由名称节点分配存储位置,然后由客户端把数据直接写入相应数据节点;在读取时,客户端从名称节点获得数据节点和文件块的映射关系,然后就可以到响应位置访问文件块。数据节点也要根据名称节点的命令创建、删除数据块和冗余复制。
  • 计算机集群中的节点可能会发生故障,因此为了保证数据的完整性,分布式文件系统通常会采用多副本存储。文件块会被复制为多个副本,存储在不同的节点上,而且存储同一文件块的不同副本的各个节点会分布在不同的机架上,这样,在单个节点出现故障时,就可以快速调用副本重启单个节点上的计算过程,而不用重启整个计算过程,整个机架出现故障时也不会丢失所有文件块。文件块的大小和副本个数通常可以由用户指定。
  • 分布式文件系统是针对大规模数据存储而设计的,主要用于处理大规模文件,如TB级文件。处理过小的文件不仅无法充分发挥其优势,而且会严重影响到系统的扩展和功能。

HDFS简介

HDFS开源实现了GFS的基本思想。
和MapReduce一起成为Hadoop的核心组成部分。HDFS支持流数据读取和超大规模文件,并能够运行在廉价的普通计算机组成的集群上,这主要得益于HDFS在设计之初就充分考虑了实际应用环境的特点,那就是,硬件出错在普通服务器集群中是一种常态,而不是异常。因此,HDFS在设计上采取了多种机制保证在硬件出错的环境中实现数据的完整性。

`总体而言,HDFS要实现以下目标:

(1)兼容廉价的硬件设备
(2)流数据读写
(3)大数据集
(4)简单的文件模型
(5)强大的跨平台兼容性

HDFS特殊的设计,在实现上述优良特性的同时,也是的自身具有一些应用局限性,主要包括以下几个方面:

(1)不适合低延迟数据访问
(2)无法高效存储大量小文件
(3)不支持多用户写入及任意修改文件

HDFS的相关概念


  在传统的文件系统中,为了提高磁盘读写效率,一般以数据块为单位,而不是以字节为单位。比如,机械式硬盘(磁盘的一种)包含了磁头和转动部件,在读取数据时有一个寻道的过程,通过转动盘片和移动磁头的位置,来找到数据在机械式硬盘中额存储位置,然后才能进行读写。在I/O开销中,机械式硬盘的寻址时间是最耗时的部分,一旦找到第一条记录,剩下的顺序读取效率是非常高的。因此,以块为单位写数据,可以把磁盘寻道时间分摊到大量数据中。
  HDFS也同样采用了块的概念,默认一个块大小是64MB。在HDFS中的文件会被拆分成多个块,每个块作为独立的单元进行存储。我们所熟悉的普通文件系统的一个块一般只有几千字节,

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值