Hadoop分布式文件存储系统(HDFS)

分布式文件系统(Hadoop Distributed System)
Hadoop的核心就是HDFS与MapReduce。那么HDFS又是基于GFS的设计理念搞出来的的。
HDFS全称是Hadoop Distributed System。HDFS是为以流的方式存取大文件而设计的。适用于几百MB,GB以及TB,并写一次读多次的场合。而对于低延时数据访问、大量小文件、同时写和任意的文件修改,则并不是十分适合。
rookiezhao
hadoop提供了一个分布式文件系统和框架,用于基于MapReduce范式的超大数据集的分析和转换。尽管HDFS的接口模仿自Unix文件系统,但为了即将到来的应用有更好的性能,我们放弃了对标准一味地遵守。

Hadoop一个重要的特性是将数据和计算分散到很多(几千)主机,并且应用计算就近数据执行。Hadoop集群仅仅通过增加商用机就可以扩展计算容量,存储容量以及IO带宽。Yahoo的Hadoop集群包含40万台机器,存储40PB数据,最大的集群有4000台机器。100家全球组织据称在使用Hadoop。

HDFS分开存储文件系统元数据应用数据。和其他分布式文件系统一样,如PVFS、Luctre、GFS、HDFS把元数据存储在一个专用的服务器,成为NameNode(名称节点)。应用数据存储在其他机器上,成为数据节点DataNodes并不依赖RAID这样的数据保护机制来实现数据的持久性,而是想GFS,文件被复制到多个数据节点来实现可靠性。除了保证了数据持久性,该策略带来的好处还有:数据传输带宽加倍,就近数据进行计算。
优点:
1)适合存储非常大的文件。
2)适合流式数据读取,即适合"只写一次,读多次"的数据处理模式。
3)适合部署在廉价的机器上。
缺点:
1)不适合存储大量的小文件,因为Namenode内存大小限制。
2)不适合实时数据读取,高吞吐量和实时性是相悖的,HDFS选择的是前者。
3)不适合需要经常修改数据的场景。

框架结构

1、名称节点(NameNode)
HDFS命名空间是一个包含文件和目录的层次结构。文件和目录在NameNode中表示为inode。inode记录访问权限、修改和访问时间、命名空间和磁盘空间指标。文件内容被分成大的block块(典型的是128M,但用户可选择其他值),每个block块被独立复制到其他多个DataNodes(典型的是3个,用户可选择其他值)。NameNode维护命名空间树以及block到DataNodes的映射关系。当前设计中,每个集群中只有一个NameNode。一个集群可以有几千个DataNodes和上万的HDFS客户端连接。
2、镜像和日志(Image and Journal)
Inode和块列表(各个块在数据节点的映射列表)定义了名称系统的元数据,称为镜像。NameNode在内存中保持全部的命名空间镜像。镜像的持久化记录存储在NameNode的本地文件系统,称为一个checkpointNameNode记录HDFS的改变到一个wal(write-ahead log)本地文件系统称为journal的日志文件。checkpoint不负责记录块副本的位置。

每个用户发起的事务都被记录在journal,journal文件会在发送确认给用户之前刷新并同步。NameNode不会改变checkpoint文件;当系统重启创建checkpoint时,当被管理员或者CheckpointNod

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值