美文网首页大数据开发
大数据开发:分布式存储系统发展历程

大数据开发:分布式存储系统发展历程

作者: 成都加米谷大数据 | 来源:发表于2021-02-05 17:50 被阅读0次

本质上来说,大数据是指大规模的数据集合,而要实现对这些数据集合的处理,需要经历从数据引入到数据存储,再到数据计算的一个过程。而在大数据的不断发展趋势下,各个环节的技术框架也在不断发展。今天的大数据开发分享,我们来讲讲分布式存储系统的发展历程。

分布式存储系统,按照细分,可以大致分为结构化存储、非结构化存储、半结构化存储、In-memory存储四种类型。

结构化存储

结构化存储(Structured Storage Systems)的历史非常久远,典型的场景就是事务处理系统或者关系型数据库(RDBMS)。

传统的结构化存储都是从单机做起的,比如大家耳熟能详的MySQL。有句话说:MySQL的成长史就是互联网的成长史。这一点也不为过。除了MySQL之外,PostgreSQL也是近几年来势头非常强劲的一个RDBMS。传统的结构化存储系统强调的是:

(1)结构化的数据(例如关系表);

(2)强一致性(例如,银行系统、电商系统等场景);

(3)随机访问(索引、增删查改、SQL语言)。

然而,正是由于这些性质和限制,结构化存储系统的可扩展性通常都不是很好,这在一定程度上限制了结构化存储在大数据环境下的表现。

非结构化存储

非结构化存储(No-structed Storage Systems),和结构化存储不同的是,非结构化存储强调的是高可扩展性,典型的系统就是分布式文件系统。分布式文件系统也是一个古老的研究话题,比如70年代的Xerox Alto、80年代的NFS、AFS、90年代xFS等等。

然而,这些早期的分布式文件系统只是起到了网络磁盘的作用,其最大的问题就是不支持容错(Fault Tolerance)和错误恢复(Fault Recovery)。而Google在2003年SOSP上推出的GFS(Google File System)则是做出了里程碑的一步,其开源实现对应为HDFS。GFS的主要思想包括:

(1)用Master来管理Metadata。

(2)文件使用64MB的Chunks来存储,并且在不同的Server上保存多个副本

(3)自动容错,自动错误恢复。

Google设计GFS最初的目的是为了存储海量的日志文件以及网页等文本信息,并且对其进行批量处理(例如配合MapReduce为文档建立倒排索引,计算网页PageRank等)。

和结构化存储系统相比,虽然分布式文件系统的可扩展性、吞吐率都非常好,但是几乎无法支持随机访问(Random Access)操作,通常只能进行文件进行追加(Append)操作。而这样的限制使得非结构化存储系统很难面对那些低延时,实时性较强的应用。

半结构化存储

半结构化存储(Semi-structure Storage Systems)的提出,就是为了解决非结构化存储系统随机访问性能差的问题。我们通常会听到一些流行的名词,比如NoSQL、Key-Value Store,甚至包括对象存储,例如Protobuf、Thrift等等。

这些都属于半结构化存储研究的领域,其中以NoSQL近几年的发展势头尤为强劲。NoSQL系统既有分布式文件系统所具有的可扩展性,又有结构化存储系统的随机访问能力(例如随机Update、Read操作),系统在设计时通常选择简单键值(K-V)进行存储,抛弃了传统RDBMS里复杂SQL查询以及ACID事务。这样做可以换取系统最大限度的可扩展性和灵活性。

在NoSQL里比较有名系统包括:Google的Bigtable、Amazon的Dynamo,以及开源界大名鼎鼎的HBase、Cassandra等。通常这些NoSQL系统底层都是基于比较成熟的存储引擎,比如Bigtable就是基于LevelDB,底层数据结构采用LSM-Tree,除了LSM-Tree之外B-Tree(B+Tree)也是很成熟的存储引擎数据结构。

In-memory存储

In-memory存储,顾名思义就是将数据存储在内存中,从而获得读写的高性能。比较有名的系统包括Memcahed,以及Redis。

这些基于K-V键值系统的主要目的是为基于磁盘的存储系统做Cache。还有一些偏向于内存计算的系统,比如可以追溯到普林斯顿Kai Lee教授早期的研究工作Distributed Shared Memory(DSM),斯坦福的RamCloud,以及最近比较火的基于Lineage技术的Tachyon(Alluxio)项目(Spark生态系统子项目)等等。

关于大数据开发,分布式存储系统的发展历程,以上就为大家做了简单的介绍了。分布式存储,目前是大数据存储的普遍选择,面对极大规模的数据存储任务,也能提供稳定及高性能的服务。

相关文章

  • 大数据开发:分布式存储系统发展历程

    本质上来说,大数据是指大规模的数据集合,而要实现对这些数据集合的处理,需要经历从数据引入到数据存储,再到数据计算的...

  • 大数据开发:分布式计算系统发展历程

    之前我们讲了分布式存储系统的发展历程,今天接着来讲存储之后的下一个重要环节——计算。要从海量的数据集合当中去挖掘出...

  • 《分布式技术原理与算法解析》学习笔记Day21

    分布式数据存储三要素 什么是分布式数据存储系统? 分布式存储系统的核心逻辑,就是将用户需要存储的数据根据某种规则存...

  • 《分布式技术原理与算法解析》学习笔记Day02

    分布式系统发展历程 分布式的发展过程经历了三个阶段: 单机模式(单兵模式) 数据并行或者数据分布式(游击队模式) ...

  • 分布式存储

    认识分布式存储 分布式存储系统,是通过网络将数据分散存储在多台独立的设备上。 分布式存储系统的特性 可扩展分布式存...

  • Hadoop相关介绍

    分布式存储系统HDFS(Hadoop Distributed File System)POSIX 分布式存储系统 ...

  • 大数据 hadoop 三种运行模式的区别、及详细配置讲解

    大数据时代,面对海量化数据,传统文件存储系统已经难以支撑。随着大数据技术的发展、越来越多存储和处理数据的组件被开发...

  • 大数据知识体系

    整个大数据处理的体系,按我的理解可以分为两个部分,一个是分布式存储系统、另一个是分布式计算框架。分布式存储系统主流...

  • Dynamo论文介绍

    Dynamo是Amazon开发的分布式存储系统,本文是阅读Dynamo论文后的总结:Dynamo: Amazon’...

  • 信道编码之RS纠删码

    简介   随着数据的存储呈现出集中化(以分布式存储系统为基础的云存储系统)和移动化(互联网移动终端)的趋势,数据可...

网友评论

    本文标题:大数据开发:分布式存储系统发展历程

    本文链接:https://www.haomeiwen.com/subject/tidgtltx.html