学习某一项技术,一定要了解它的来龙去脉,才能把握到它的本质以及它的未来。

一、大数据技术发展史:大数据的前世今生

        在2004年,Google前后发表了三篇论文,即大数据技术的“三驾马车”:分布式文件系统GFS、大数据分布式计算框架MapReduce和NoSQL数据库系统BigTable。分别是一个文件系统、一个计算框架和一个数据库系统。其本质思路是部署一个大规模的服务器集群,通过分布式的方式将海量数据存储在这个集群上,然后利用集群上的所有机器进行数据计算这样就不需要追求单个服务器的性能了。

        Doug Cutting阅读论文后在自己的产品上实现了GFS、MapReduce的功能,后面在2006年将这些大数据技术分离出来作为一个单独的技术,这就是Hadoop,包括了分布式文件系统HDFS和大数据计算引擎MapReduce。(PS:Hadoop的代码都是一些最基础的JAVA代码,理应要去研读掌握)

       Yahoo很快运用起了Hadoop,这时发现用MapReduce进行大数据编程太麻烦了,于是开发了类SQL的Pig。后面在2010年Facebook又发布了Hive,其支持SQL语法进行大数据计算(可以把SQL语句转化为MapReduce程序)。

        随后Hadoop周边产品开始出现,大数据生态体系渐成:专门将关系数据库中的数据导入导出到 Hadoop 平台的 Sqoop;针对大规模日志进行分布式收集、聚合和传输的 Flume;MapReduce 工作流调度引擎 Oozie 等。

        在Hadoop早期,MapReduce既是一个执行引擎,又是一个资源调度框架,服务器集群的资源调度管理就是由MapReduce完成,这显得太臃肿,于是在2012年有了一个新项目Yarn,把MapReduce两个功能分离出一个,现在,Yarn成为了大数据平台上最主流的资源调度系统

        同在2012年,伯克利AMP实验室的马铁博士发现MapReduce进行机器学习的性能很差,因为机器学习要迭代很多次,但MapReduce每执行一次计算都要重启一次作业,于是开发了Spark,后面逐渐替代了MapReduce。

        像MapReduce、Spark这类计算框架都被称作批处理计算,又被称为大数据离线计算。但还有另一类应用场景,如何城市监控等,这时候就有了Storm、Flink、Spark Streaming大数据流计算框架,流计算又称作大数据实时计算。其中Flink同时支持批处理计算和流式计算、

        除了大数据批处理和流处理,NoSQL系统主要处理的也是大规模海量数据的存储与访问,所以也被归为大数据技术。在2011年,涌现出HBase、Cassandra等优秀产品,其中HBase是从Hadoop中分离出来的、基于HDFS的NoSQL系统。

        此外,大数据要存入分布式文件系统(HDFS),要有序调度 MapReduce 和 Spark 作业执行,并能把执行结果写入到各个应用系统的数据库中,还需要有一个大数据平台整合所有这些大数据组件和企业应用系统。因此大数据技术体系如下图所示:

 

图1
图1

        

二、大数据应用发展史:从搜索引擎到人工智能

 

        搜索引擎时代 (代表产品:Hadoop) ==> 数据仓库时代(代表产品:Hive) ==> 数据挖掘时代==>机器学习时代

 

 


 

三、参考文献

李智慧,极客时间《从0开始学习大数据》1-3讲

更多推荐