Bootstrap

大数据技术思想入门(二):分布式存储集群特点

如果你不喜欢阅读文字的话,可以选择滑到最后看 视频讲解 哟~~~

在上一篇讲解分布式存储特点的文章中,我们得出分布式存储的特点有:

可以看出,存储大数据集需要大量的服务器,而且每台服务器上又会存储成千上万的数据块,那么现在问题又来了,主要有两个问题:

服务器管理

我们先来看第一个问题,第一个问题其实就是对存储数据的所有的服务器的管理,这些服务器的下面这些信息被管理起来:

我们可以通过再引入一台服务器来存储上面的信息,这台服务器我们一般称为 master (主的意思)。那么其他存储数据块的服务器称为 slave (从的意思)。当所有的 slave 服务器启动的时候,将它自己的 IP 地址、磁盘容量情况、健康情况等信息发送给 master 服务器,这样 master 服务器就可以知道:

这样,我们通过引入 master 服务器,解决了所有服务器管理的问题,这种 master-slave 解决问题的模式,我们称为主从模式。

分布式文件

接下来我们看第二个问题,在解决这个问题之前,我们先来看下在一台服务器中的小数据是怎么存储的,一般在一台服务器(不管是 Windows 还是 Linux)上,我们都是会创建一个文件,然后将数据存储在这个文件中,在这里我们需要弄明白的是:

  • 文件只是一个抽象逻辑的概念,数据最终还是存储在磁盘中

  • 文件包含了两部分数据:元数据和真正的数据

文件的元数据包括:文件名、文件的大小、文件创建的时间、文件修改的时间、文件的权限等信息。

真正的数据是指存储在文件对应的磁盘中的数据。如果想访问磁盘中的数据,我们可以通过文件名来找到数据存储的位置,然后开始读写数据。

以上我们讨论的是小数据集的存储,那么对于大数据集的存储,同样可以将一个完整的大数据集抽象出文件,这个文件同样包含两个部分的数据:元数据和真正的数据。

但是,大数据的存储有自己的特点,那就是数据分块分布式存储在多台服务器,以及数据块需要备份。所以,大数据集对应的文件就有自己的特点了:

  • 大数据集对应的文件也只是个抽象逻辑的概念,数据最终是分块分布式存储在多台服务器中

  • 大数据集对应的文件虽然也包含元数据和真正的数据两部分,但是对于大数据集的存储来说,文件元数据还需要包括:这个文件包含哪些数据块

一般的话,我们将大数据集对应的文件称为分布式文件。分布式文件对应的真正数据是分成若干个数据块,然后分布式的存储在 多台 slave 服务器中的

分布式文件的元数据包括:文件名、文件的大小、文件的创建时间和修改时间、文件的权限,还有这个文件对应哪些数据块等信息。每个数据块本身也有元数据:数据块的备份数、数据块存储的位置(即这台数据块存储在哪台服务器)

那么分布式文件的元数据该存储在哪里呢?因为这些数据是独立于存储在 slave 上的数据块的,所以这部分元数据信息仍然可以存储在 master 服务器中。

总结

为了解决下面的两个问题:

我们引入了一台 master 服务器,在这台服务器上存储如下的数据:

可以看出,master 服务器上存储的都是元数据信息,所以我们也可以将 master 称为元数据服务器。

综上所述,为了解决对大数据集的存储,我们需要一台 master 服务器和若干台 slave 服务器组成一个主从架构的集群,那么,大数据集被抽象成分布式文件,一个分布式文件的真正数据是被分成若干个数据块分布式的存储在 slave 服务器中,分布式文件的元数据则存储在 master 服务器中。

系统学习大数据技术: