1、大数据发展历程

为了更深刻的了解大数据的前世今生,在极客时间花了几十块钱,买了徐文浩老师的《大数据经典论文解读》。最开始学习大数据时,本来是想一一精读每篇论文,但是又有两个条件劝退,一是没有整段的时间来做论文精读,二是大数据相关论文多是发表在国外期刊,我的英语水平用于理解几个组件名词还行,但是对于其中奥妙,是在难以解读。所幸遇到这个栏目,像是电影赏析一般,对深刻经典的大数据论文进行拆解,对其中内在精妙之处进行点评解析。为了学有所获,从今天开始记录一下大数据论文的学习过程。


大数据与传统技术对比

话不多说,既然要学习大数据,首先,要理解什么是大数据,在文中,徐老师将大数据定义为三个核心技术理念。
1、数量级:能够收缩到一千台服务器以上的分布式数据处理集群的技术。这个定义来源于谷歌的GFS论文,里面的集群规模可以达到上千。
2、成本:上千个节点的集群,采用廉价的PC架构搭建起来。正是由于搭建成本变低,任何一个程序员都可以用自己的PC开发,贡献代码,才使得大数据生态异常繁荣。
3、高度抽象:把数据中心当做一台计算机。大数据的最终目的,就是把集群抽象成一台能处理海量数据的计算的,所有的”大数据框架“,都希望就算没有大数据底层技术知识的工程师,也能很容易的处理海量数据。

其次,要了解大数据技术,就要知道大数据技术的发展过程。大数据技术的出现起源于Google,Google由于搜索业务量剧增,而对存储、计算、在线服务三个需求的探索,从而在2003、2004、2006分别提出了对应的解决方案,即大数据的开端-三驾马车。


三驾马车

三驾马车中,GFS主要解决数据的存储问题,作为一个上千节点的分布式文件系统,Google可以把所有需要的数据很容易的存储下来。MapReduce主要是为了解决数据的计算问题,通过Map和Reduce两个函数,对海量数据计算进行一次抽象,让处理的数据的技术人员不需要掌握分布式系统的开发技术就可以完成海量数据计算。Bigtable主要解决的是数据的高性能随机读写问题,用以满足业务场景下的在线服务需求,它直接使用了GFS作为底层存储,做了集群的分片调度,再利用MemTable+SSTable的底层存储格式,解决大集群、机械硬盘下的高性能随机读写问题。


Chubby和Thrift

最后,除了三驾马车,初始的大数据技术还依赖于两个基础设施。第一个是保障数据一致性的基于Paxos算法的分布式锁Chubby。第二个是为了解决数据序列化和分布式系统之间通信问题的Thrift。
大数据系统的进化

到这里,由三驾马车和两个基础设施组成最基本的大数据系统就算完备了。但是相对于实际需求来说,这个大数据系统还略显粗糙。于是他们在不同的方向开始进化延续。致力于大数据计算的OLAP(基于分析)MapReduce,出现了Hive、Spark、Dremel等计算引擎。致力于大数据在线服务的OLTP(基于增删改)Bigtable,出现了Megastore、Spanner等技术。


流批一体的进化

为了解决数据实时处理的问题,大数据系统中出现了流式数据处理技术,首先,Yahoo在2004年发表了S4的论文,并在2011年开源了S4的技术。Twitter的工程师又开发并开源了Storm。并且南森基于Storm和MapReduce提出了Lambda架构,它可以称之为第一个“流批协同”的大数据处理架构。接着在2011年,Kafka的论文也被发表了,2014年Kafka的作者Jay Krepson提出了Kappa架构,可以称为第一代“流批一体”的大数据处理架构。随之而然,2015年Google发表了Dataflow模型,基于流式数据处理做了最好的总结和抽象,后来基于此,开源了Flink和Apache Beam。
大数据经典论文

最后,由于大数据生态的不断发展和丰富,传统的服务器调度算法就变得很吃力,于是出现了Multi-Paxos协议和Raft协议,基于Raft协议,使整个分布式系统由虚拟机转变成为容器化,也就是Kubernetes的出现。

你可能感兴趣的:(1、大数据发展历程)