0-大数据技术的发展史
2020-06-15 11:33:36 1 举报
AI智能生成
大数据技术的发展史
作者其他创作
大纲/内容
起源<br>
Google 在 2004 年前后发表的三篇论文,也就是我们经常听到的“三驾马车”
分布式文件系统 GFS
大数据分布式计算框架 MapReduce
NoSQL 数据库系统 BigTable
搜索引擎主要就做两件事情
一个是网页抓取,一个是索引构建
这两件事情,涉及到大量数据的存储和计算
而“三驾马车”其实就是用来解决这个问题的,一个文件系统、一个计算框架、一个数据库系统
Hadoop诞生
当时的天才程序员,也是 Lucene 开源项目的创始人 Doug Cutting 正在开发开源搜索引擎 Nutch,<br>阅读了 Google 的论文后,他非常兴奋,紧接着就根据论文原理初步实现了类似 GFS 和 MapReduce 的功能<br>
2006 年,Doug Cutting 将这些大数据相关的功能从 Nutch 中分离了出来,然后启动了一个独立的项目专门开发维护大数据技术,<br>这就是后来赫赫有名的 Hadoop,主要包括 Hadoop 分布式文件系统 HDFS 和大数据计算引擎 MapReduce<br>
Hadoop是使用Java编写的
Hadoop 发布之后,Yahoo 很快就用了起来。大概又过了一年到了 2007 年,百度和阿里巴巴也开始使用 Hadoop 进行大数据存储与计算。
2008 年,Hadoop 正式成为 Apache 的顶级项目,后来 Doug Cutting 本人也成为了 Apache 基金会的主席。<br>自此,Hadoop 作为软件开发领域的一颗明星冉冉升起。<br>
同年,专门运营 Hadoop 的商业公司 Cloudera 成立,Hadoop 得到进一步的商业支持。
Pig诞生
Yahoo 的一些人觉得用 MapReduce 进行大数据编程太麻烦了,于是便开发了 Pig。Pig 是一种脚本语言,使用类 SQL 的语法,<br>开发者可以用 Pig 脚本描述要对大数据集上进行的操作,Pig 经过编译后会生成 MapReduce 程序,然后在 Hadoop 上运行。<br>
Hive诞生
编写 Pig 脚本虽然比直接 MapReduce 编程容易,但是依然需要学习新的脚本语法。于是 Facebook 又发布了 Hive。<br>Hive 支持使用 SQL 语法来进行大数据计算,比如说你可以写个 Select 语句进行数据查询,然后 Hive 会把 SQL 语句转化成 MapReduce 的计算程序。<br>
这样,熟悉数据库的数据分析师和工程师便可以无门槛地使用大数据进行数据分析和处理了。Hive 出现后极大程度地降低了 Hadoop 的使用难度,<br>迅速得到开发者和企业的追捧。据说,2011 年的时候,Facebook 大数据平台上运行的作业 90% 都来源于 Hive。<br>
Sqoop诞生
专门将关系数据库中的数据导入导出到 Hadoop 平台
Flume诞生
针对大规模日志进行分布式收集、聚合和传输
Oozie诞生
MapReduce 工作流调度引擎
Yarn诞生
在 Hadoop 早期,MapReduce 既是一个执行引擎,又是一个资源调度框架,服务器集群的资源调度管理由 MapReduce 自己完成。<br>但是这样不利于资源复用,也使得 MapReduce 非常臃肿。<br>于是一个新项目启动了,将 MapReduce 执行引擎和资源调度分离开来,这就是 Yarn。<br>2012 年,Yarn 成为一个独立的项目开始运营,随后被各类大数据产品支持,成为大数据平台上最主流的资源调度系统。<br>
Spark诞生
2012 年,UC 伯克利 AMP 实验室(Algorithms、Machine 和 People 的缩写)开发的 Spark 开始崭露头角。<br>当时 AMP 实验室的马铁博士发现使用 MapReduce 进行机器学习计算的时候性能非常差,因为机器学习算法通常需要进行很多次的迭代计算,<br>而 MapReduce 每执行一次 Map 和 Reduce 计算都需要重新启动一次作业,带来大量的无谓消耗。<br>还有一点就是 MapReduce 主要使用磁盘作为存储介质,而 2012 年的时候,内存已经突破容量和成本限制,成为数据运行过程中主要的存储介质。<br>Spark 一经推出,立即受到业界的追捧,并逐步替代 MapReduce 在企业应用中的地位。<br>
两类计算
大数据离线计算/批处理计算
一般说来,像 MapReduce、Spark 这类计算框架处理的业务场景都被称作批处理计算,<br>因为它们通常针对以“天”为单位产生的数据进行一次计算,然后得到需要的结果,这中间计算需要花费的时间大概是几十分钟甚至更长的时间。<br>
因为计算的数据是非在线得到的实时数据,而是历史数据,所以这类计算也被称为大数据离线计算。
大数据实时计算/大数据流计算
另外一类应用场景,它们需要对实时产生的大量数据进行即时计算,比如对于遍布城市的监控摄像头进行人脸识别和嫌犯追踪。<br>这类计算称为大数据流计算,相应地,有 Storm、Flink、Spark Streaming 等流计算框架来满足此类大数据应用的场景。<br>
流式计算要处理的数据是实时在线产生的数据,所以这类计算也被称为大数据实时计算。
在典型的大数据的业务场景下,数据业务最通用的做法是,采用批处理的技术处理历史全量数据,采用流式计算处理实时新增数据。<br>而像 Flink 这样的计算引擎,可以同时支持流式计算和批处理计算。<br>
NoSQL系统
NoSQL 系统处理的主要也是大规模海量数据的存储与访问,所以也被归为大数据技术。
NoSQL 曾经在 2011 年左右非常火爆,涌现出 HBase、Cassandra 等许多优秀的产品,其中 HBase 是从 Hadoop 中分离出来的、基于 HDFS 的 NoSQL 系统。
0 条评论
下一页