咱们都知道如今大数据存储用的基本都是 Hadoop Hdfs ,但在 Hadoop 诞生以前,咱们都是如何存储大量数据的呢?此次咱们不聊技术架构什么的,而是从技术演化的角度来看看 Hadoop Hdfs。node
咱们先来思考两个问题。服务器
要知道,存储大量数据有三个最重要的指标,那就是速度,容量,容错性。速度和容量的重要性毋庸置疑,若是容量不够大,或者读取的速度不够快,那么海量数据存储也就无从谈起了。而磁盘又是计算机中很容易损坏的零件,当磁盘损坏的时候怎么办?听任数据的丢失吗,那可不行,这就有了容错性的需求。架构
在没有分布式存储的时代,单个磁盘容量不够怎么办?加磁盘呗。磁盘容易坏怎么办,同时用其余磁盘备份呗。就这样,独立磁盘冗余阵列( Redundant Array of Independent Disks ),简称 RAID,诞生了。
并发
在 2000 年之前,磁盘仍是很珍贵的资源,不像如今,磁盘是 PC 机中最廉价的部件。一开始 RAID 技术是为了将多个廉价的容量较小的磁盘组合起来充当一个大磁盘以节约成本,但后来人们发现这项技术也能够用在单台机器磁盘扩容上了,因而 RAID 技术开始被普遍使用。框架
RAID 技术将多个磁盘组合成一个逻辑扇区,对计算机而言,它会将 RAID 看成一个磁盘来处理。使用 RAID 的好处有:加强数据集成度,加强容错功能,增长处理量或容量。分布式
另外 RAID 也有分为多个档次,标准的分法,分别是 RAID0 , RAID1 , RAID2 ,RAID3 ,RAID4 ,RAID5 , RAID6 ,每一个档次都有对应的优缺点。这里就不详细介绍,这些 RAID 等级的不一样主要是对 上述说到的三个数据存储要素(速度,容量,容错性)的不一样取舍,各有各的应用场景。咱们从上述的三个指标来看 RAID 技术。oop
最直接是缘由是 Google 三篇大数据论文的发表,这直接致使了 Hadoop 的问世。大数据
但更深层的缘由其实仍是由于传统的但节点磁盘容量达到了极限,即使是用上述的 RAID 技术,但单个台服务器的容量始终有一个边界值。并且随着互联网的普及,在 2000 年后,数据的积累呈指数式增加,这时候单台服务器显然已经放不下这海量的数据了。可是就像 RAID 的改革思想同样,既然单台服务器不够,那咱们就加服务器呗。设计
最先是 Google ,他们在本身的系统上实现了 Google File System(GFS) 这么一个分布式存储系统,并在 03 年的时候将它的实现论文发表了出来。然后 Doug Cutting 和 Mike Cafarella 在这三篇论文的基础上开发出了 Hadoop。3d
但要将多台服务器联合在一块儿进行分布式存储,显然不是那么容易。Hadoop1.0 的时候,Hdfs 仍是有一些隐患的。举个例子,用分布式进行数据存储,那就须要一个来记录元数据的服务器,也就是记录数据存储位置的服务器。Hadoop1.0 时候的 Hdfs 是用一个 namenode 管理元数据的,但显然,只有一个 namenode 来存储元数据有极大的风险,那就是 namenode 的可靠性没法保证,一旦这个 namenode 挂掉,整个集群就完蛋了。
好在这些问题及时获得修复,Hadoop2.0 横空出世,解决了大部分的问,好比上面说到的 NameNode 单点故障问题,解决方式就是多引入一台 NameNode 作同步备份,一个 NameNode 出问题时另外一个跳出来扛。升级事后,Hadoop Hdfs 这才算是坐稳了大数据存储王者的宝座。
在这里咱们就先不说 Hadoop Hdfs 的架构如何,依旧是从上面说到的大数据存储的三个指标速度,容量,容错性这几个方面来看 Hadoop Hdfs。
咱们能够发现,其实 Hadoop Hdfs 和 RAID 在思想上是有一些类似之处的。都是经过水平拓展,好比 RAID 水平拓展磁盘,Hadoop Hdfs 则是水平拓展机器。
铁打的营盘流水的兵。数据就是那些兵,大数据计算框架,好比 Spark,Hive 是将军。而营盘就是 Hadoop Hdfs 了。兵进进出出,将军换了一个又一个,惟独营盘不会变,Hadoop Hdfs 无疑是大数据体系中最基础也是最重要的那一环。
这里给出一个有意思的问题: 当下一次互联网革命到来,数据又呈指数增加的时候,数据存储的模式会怎样演化呢?会是简单的增长集群吗,比方说让多个 hdfs 集群相互连通?欢迎在评论中写下你的思考。