分布式文件系统HDFS原理篇

所谓分布式文件系统就是通过网络实现文件在多台主机上进行分布式存储的文件系统!它一般采用“客户端/服务器端”的模。

分布式文件系统的结构

如下图所示,分布式文件系统在物理结构上是由计算机集群的多个节点构成的。这些节点分为主节点(Namenode,也叫做名称节点)和从节点(Datanode,也叫做数据节点)。其中主节点负责文件和目录的创建、删除和重命名等,同时管理着从节点和文件块的映射关系,因此客户端只能访问主节点才能找到请求的文件块所在的位置,进而到相应的位置读取所需文件块。从节点负责数据的存储和读取,在存储时,由主节点分配存储位置,然后由客户端把数据直接写入相应从节点;在读取时,客户端从主节点获取从节点和文件块的映射关系,然后就可以到相应位置访问文件块。注意,从节点也可以根据主节点的命令创建、删除数据块和冗余复制。

补充一点,在我们日常的操作系统中,文件系统一般以512字节为一个磁盘块来存放数据,它是文件系统读写操作的最小单位,文件系统的块一般是磁盘块的整数倍,即读写是磁盘块的整数倍。HDFS中文件也是分块存储,只是它的默认大小是64MB,而且如果一个文件小于一个块的大小时,它并不占用整个数据块的存储空间。

还有需要说明的是,为了实现数据的完整性,也就是整个集群中的节点可能会故障,为了保证完整性,我们通常会采用多副本存储,也就是将同一份数据的副本存储在不同的Rack上。

HDFS的相关概念

上面已经介绍了HDFS的文件是才分为块来存储的,而且每块的大小是64MB。那么它为什么要这么大呢?要知道我们的操作系统中文件系统才512KB而已!这样做的目的是为了最小化寻址开销和数据的定位开销。当客户端需要访问一个文件时,首先从主节点获得组成这个文件的数据块的位置列表,然后根据位置列表获得实际存储各个数据块的从节点的位置,最后从节点根据数据块信息在本地文件系统中找到相应的文件,并把数据返回给客户端。这样当块比较大时,可以降低单位数据的寻址开销!当然,块也不宜太大,因为通常MapReduce中的Map任务一次只处理一个块中的数据,如果启动的任务太少,就会降低并行处理的速度。

HDFS采用抽象块的好处如下&#

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值