一、什么是文件系统(File System)?
在计算机的世界中,文件系统是一种对计算机中的文件进行命名、存储和检索的方式。如果没有文件系统,存储在计算机中的信息将不会分隔在各个文件中,最主要的问题是无法对文件进行检索,随着存储数据的增加,单个文件的组织和可访问性在数据存储中变得越来越重要。
文件系统就像书本一样,如图1-1和图1-2所示,如果一本书和一堆同一本书中内容一致的无序纸张,派两个人同时去找该书籍中的第24章,那么您认为谁会更快进入第24章呢?毫无疑问,肯定是有书的那一位同学,书本将无序的纸张有序地组织起来,通过目录进行检索,方便快速查询。
二、文件系统的主要功能?
2.1 控制文件的存储和检索方式。当您在硬盘上进行文件读写的时候,您的请求都是通过文件系统进行的。
2.2 文件系统通过管理元数据(metadata)来管理文件。元数据包括比如:文件名、大小、所有者、创建和修改时间等。
2.3 文件系统还负责权限和安全性能的管理
2.4 文件系统可以对您的存储空间进行管理。当您向硬盘写入文件时,文件系统会帮助您将文件写入硬盘的哪个具体位置
三、主流的文件系统有哪些?
3.1 FAT:诞生于1977年,由微软设计,早期主要用于软盘,后被改用到硬盘上,由于其对文件读写大小的限制,FAT单个文件的限制为4GB,整个系统的容量限制为32GB,现在基本上被时代抛弃;现在windows主流的文件系统是NTFS。
3.2 NTFS:New Technology File System,目前主流的windows操作系统的文件系统,单个文件限制为16EB,最大容量为16EB。
3.3 ext4:Linux系统的主要文件系统,可通过df -T的操作命令进行查看,单个文件限制为16TB,最大容量为1EB。
3.4 HFS+:MAC操作系统的主要文件系统,单个文件限制为8EB,最大容量为8EB。
四、分布式文件系统
4.1 假设您有一个10节点群集,并且每个节点上都有ext4作为文件系统。我们将每个节点上的ext4称为本地文件系统。因此,首先,当我们将文件上传到您的文件系统时,我们需要文件系统将数据集分成固定大小的块。尽管每个文件系统都有块的概念,但是与传统文件系统中的块相比,HDFS中的块的概念有很大不同。
4.2 接下来,您的文件系统应具有集群中文件或块的分布式视图,而本地文件系统ext4则无法实现。
4.3 节点1上的本地ext4文件系统不知道节点2上的内容。同样,节点2也不清楚节点1上的内容。这是因为由于节点1和节点2中的ext4文件系统对于每个节点都是本地的,因此因此,他们不可能拥有全局或分布式视图。这就是为什么我们将各个节点上的ext4称为本地文件系统。
4.4 下一个重要的事情是复制。由于节点1中的ext4不知道在其他任何节点中的存储,因此它无法将节点1中的块复制到其他节点。这意味着我们面临数据丢失的风险。现在假设您在ext4之上有一个文件系统,但是只有这次它分布在所有节点和tadaaaa上!我们称其为Hadoop分布式文件系统。
4.5 所以现在当您将文件上传到HDFS时。在最新版本的Hadoop中,它将自动分成128 MB固定大小的块。旧版中为64 MB块。HDFS负责将块放置在不同的节点中,还负责将每个块复制到多个节点中。默认情况下,HDFS将一个块复制到3个节点。
4.6 假设您将700 MB的数据集复制到HDFS中。HDFS将数据集分为128 MB的块。因此,我们将拥有5个相等大小的128 MB块和1个60 MB的块。由于HDFS具有群集的分布式视图,因此HDFS将决定哪些节点应保存这6个块,并选择节点来保存复制的块。HDFS将始终保持跟踪所有块及其节点分配。因此,当用户向HDFS询问有关700 MB数据集的信息时,它知道如何从块构造文件。
五、当您拥有HDFS时,每个节点上的本地文件系统ext4会如何处理?
HDFS绝不能替代本地文件系统。操作系统仍然依赖于本地文件系统。实际上,操作系统并不关心HDFS的存在。一件有趣的事情,HDFS仍应通过ext4将块保存在存储器中。
HDFS的真正功能在于它分散在群集中的所有节点上,并且具有群集的分散视图,因此它知道如何从块构造700 MB数据集。由于ext4没有分散的视图,而只有局部视图,因此只能知道它正在管理的存储块。
六、HDFS的优势
6.1 首先,HDFS支持块的概念。当您将文件上传到HDFS时,该文件被分成固定大小的块以支持分布式计算,这对于Hadoop是关键,而且HDFS跟踪集群中的所有块。
6.2 在大数据环境中,磁盘故障或数据损坏是不可避免的。HDFS通过在多个节点中复制块来维护数据完整性并帮助从数据丢失中恢复。
6.3 HDFS支持扩展,也就是说,如果您想通过添加更多节点来扩展群集,则使用HDFS非常容易。
6.4 您不需要任何专用硬件即可操作HDFS。HDFS是为与商用计算机一起使用而建立的。
七、总结
因此,让我们总结一下我们在本文中学到的知识。首先,我们研究了什么是文件系统,它的功能以及目前可用的几个主要文件系统。接下来,我们讨论了对诸如HDFS之类的新分布式文件系统的需求,并比较了诸如ext4与HDFS之类的本地文件系统。最后,我们看到了HDFS的好处。