一.HDFS出现的背景
随着社会的进步,需要处理数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是却不方便管理和维护—>因此,迫切需要一种系统来管理多台机器上的文件,于是就产生了分布式文件管理系统,英文名成为DFS(Distributed File System)。
那么,什么是分布式文件系统?简而言之,就是一种允许文件通过网络在多台主机上分享的文件系统,可以让多个机器上的多个用户分享文件和存储空间。它最大的特点是“通透性”,DFS让实际上是通过网络来访问文件的动作,由用户和程序看来,就像是访问本地的磁盘一般(In other words,使用DFS访问数据,你感觉不到是访问远程不同机器上的数据)。
图1.一个典型的DFS示例
二.深入了解HDFS
作为Hadoop的核心技术之一,HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)是分布式计算中数据存储管理的基础。它所具有的高容错、高可靠、高可扩展性、高吞吐率等特性为海量数据提供了不怕故障的存储,也为超大规模数据集(Large Data Set)的应用处理带来了很多便利。
图2.Hadoop HDFS的LOGO
提到HDFS,不得不说Google的GFS。正是Google发表了关于GFS的论文,才有了HDFS这个关于GFS的开源实现。
2.1 设计前提与目标
(1)硬件错误是常态而不是异常;(最核心的设计目标—>HDFS被设计为运行在众多的普通硬件上,所以硬件故障是很正常的。因此,错误检测并快速恢复是HDFS最核心的设计目标)
(2)流式数据访问;(HDFS更关注数据访问的高吞吐量)
(3)大规模数据集;(HDFS的典型文件大小大多都在GB甚至TB级别)
(4)简单一致性模型;(一次写,多次读的访问模式)
(5)移动计算比移动数据更为划算;(对于大文件来说,移动计算比移动数据的代价要低)
2.2 HDFS的体系结构
HDFS是一个主/从(Master/Slave)式的结构,如下图所示。