google为何发布这三篇文论?
Google早起最早盈利的项目便是搜索引擎,那技术怎样连续发展作为Google面对的问题。
搜索引擎重点就做两件事情,一个是网页抓取,一个是索引构建,而在这个过程中,有海量
的数据需要存储和计算。
Google 在 2004 年前后发布的三篇论文,亦便是咱们经常听到的“三驾马车”,分别是分布式文件系统 GFS、大数据分布式计算框架MapReduce 和 NoSQL 数据库系统 BigTable。
这“三驾马车”其实便是用来处理这个问题的,
一个文件系统、一个计算框架、一个数据库系统。
此刻你听到分布式、大数据之类的词,肯定一点儿亦不陌生。
2004 年的大数据发展-萌芽期
2004年全部互联网还处在懵懂时代,Google 发布的论文实在是让业界为之一振,大众恍然大悟,原来还能够这么玩。
由于那个时间段,大都数机构的关注点其实还是聚焦在单机上,在思考怎样提高单机的性能,寻找更贵更好的服务器。而 Google 的思路是安排一个大规模的服务器集群,经过分布式的方式将海量数据存储在这个集群上,而后利用集群上的所有设备进行数据计算。 这般,Google 并不需要买非常多很贵的服务器,它只要把这些普通的设备组织到一块,就非常厉害了。
天才程序员-Doug Cutting闪亮登场
彼时他正在研发开源搜索引擎 Nutch,阅读了 Google 的论文后,他非常兴奋,紧接着就按照论文原理初步实现了类似 GFS 和 MapReduce 的功能。两年后的 2006 年,Doug Cutting 将这些大数据关联的功能从 Nutch 中分离了出来,而后起步了一个独立的项目专门研发守护大数据技术,这便是后来赫赫有名的 Hadoop,重点包含 Hadoop 分布式文件系统 HDFS 和大数据计算引擎 MapReduce。
当咱们回顾软件研发的历史,包含咱们自己研发的软件,你会发掘,有的软件在研发出来以后无人问津或寥寥数人运用,这般的软件其实在所有研发出来的软件中占大都数。而有的软件则可能会开创一个行业,每年创造数百亿美元的价值,创造百万计的就业岗位,这些软件曾经是 Windows、Linux、Java,而此刻这个名单要加上 Hadoop 的名字。倘若有时间,你能够简单浏览下 Hadoop 的代码,这个纯用 Java 编写的软件其实并无什么高深的技术难点,运用的亦都是有些最基本的编程技巧,亦无什么出奇之处,然则它却给社会带来巨大的影响,乃至带动一场深刻的科技革命,推动了人工智能的发展与进步。
软件的价值点
多思考一下,咱们所研发软件的价值点在哪里?真正需要运用软件实现价值的地区在哪里?你应该关注业务、理解业务,有价值导向,用自己的技术为机构创造真正的价值,从而实现自己的人生价值。而不是整天埋头在需要说明文档里,做一个无思考的代码设备人。
2007-2008年 发展期
Hadoop 发布之后,Yahoo 火速就用了起来。大概又过了一年到了 2007 年,百度和阿里巴巴亦起始运用 Hadoop 进行大数据存储与计算。2008 年,Hadoop 正式作为 Apache 的顶级项目,后来 Doug Cutting 自己亦作为了Apache 基金会的主席。自此,Hadoop 做为软件研发行业的一颗明星冉冉升起。同年,专门运营 Hadoop 的商场机构 Cloudera 成立,Hadoop 得到进一步的商场支持。这个时候,Yahoo 的有些人觉得用 MapReduce 进行大数据编程太麻烦了,于是便研发了Pig。Pig 是一种脚本语言,运用类 SQL 的语法,研发者能够用 Pig 脚本描述要对大数据集上进行的操作,Pig 经过编译后会生成 MapReduce 程序,而后在 Hadoop 上运行。编写 Pig 脚本虽然比直接 MapReduce 编程容易,然则依然需要学习新的脚本语法。
Facebook 又发布了 Hive
Hive 支持运用 SQL 语法来进行大数据计算,例如说你能够写个 Select 语句进行数据查找,而后 Hive 会把 SQL 语句转 成 Ma Reduce 的计算程序。这般,熟练数据库的数据分析师和工程师便能够无门槛地运用大数据进行数据分 和处理了。Hive 显现后极重 度地降低了 Hadoop 的运用难度,快速得到研发者和企业的追捧。
调度引擎Yarn引领潮流
2011 年的时候,Facebook 大数据平台上运行的作业 90% 都源自于 Hive。随后,众多 H doop 周边制品起始显现,大数据生态体系逐步形成,其中包含:专门将关系数据库中的数据导入导出到 Hadoop 平台的 Sqoop;针对大规模日志进行分布式收集、聚合和传输的 Flume;MapReduce 工作流调度引擎 Oozie 等。在 Hadoop 初期,MapReduce 既是一个执行引擎,又是一个资源调度框架,服务器集群的资源调度管理由 MapReduce 自己完成。然则这般有害于资源复用,亦使得MapReduce 非常臃肿。于是一个新项目起步了,将 MapReduce 执行引擎和资源调度分离开来,这便是 Yarn。2012 年,Yarn 作为一个独立的项目起始运营,随后被各类大数据制品支持,作为大数据平台上最主流的资源调度系统。
Spark崭露头角
2012 年,UC 伯克利 AMP 实验室(Algorithms、Machine 和 People 的缩写)研发的 Spark 起始崭露头角。当时 AMP 实验室的马铁博士发掘运用 MapReduce 进行设备学习计算的时候性能非常差,由于设备学习算法一般需要进行非常多次的迭代计算,而MapReduce 每执行一次 Map 和 Reduce 计算都需要重新起步一次作业,带来海量的无谓消耗。还有一点便是 MapReduce 重点运用磁盘做为存储介质,而 2012 年的时候,内存已然突破容量和成本限制,作为数据运行过程中重点的存储介质。Spark 一经推出,立即受到业界的追捧,并逐步替代 MapReduce 在企业应用中的地位。通常说来,像 MapReduce、Spark 这类计算框架处理的业务场景都被叫作作批处理计算,由于它们一般针对以“天”为单位产生的数据进行一次计算,而后得到需要的结果,这中间计算需要花费的时间大概是几非常钟乃至更长的时间。由于计算的数据是非在线得到的实时数据,而是历史数据,因此这类计算亦被叫作为大数据离线计算。
大数据流计算来了
在大数据行业,还有另一一类应用场景,它们需要对实时产生的大量数据进行即时计算,例如针对遍布城市的监控摄像头进行人脸识别和嫌犯跟踪。这类计算叫作为大数据流计算,应地,有Storm、Flink、Spark Streaming等流计算框架来满足此类大数据应用的场景。流式计算要处理的数据是实时在线产生的数据,因此这类计算亦被叫作为大数据实时计算。在典型的大数据的业务场景下,数据业务最通用的做法是,采用批处理的技术处理历史全量数据,采用流式计算处理实时新增数据。而像 Flink 这般的计算引擎,能够同期支持流式计算和批处理计算。
NoSQL的发展
除了大数据批处理和流处理,NoSQL 系统处理的重点亦是大规模海量数据的存储与拜访,因此亦被归为大数据技术。 NoSQL 曾经在 2011 年上下非常火热,涌现出 HBase、Cassandra 等许多优秀的制品,其中 HBase 是从 Hadoop 中分离出来的、基于 HDFS 的NoSQL 系统。
历史竟惊人的类似
咱们回顾软件发展的历史会发掘,差不多类似功能的软件,它们显现的时间都非常接近,例如 Linux 和 Windows 都是在 90 年代初显现,Java 研发中的各类 MVC 框架亦基本都是同期显现,Android 和 iOS 亦是前脚后脚面世
最后
事物发展有自己的潮流和规律,当你身处潮流之中的时候,要紧紧抓住潮流的机会,想办法脱颖而出,即使无成功,亦会更加洞悉时代的脉搏,收获宝贵的知识和经验。而倘若潮流已然退去,这个时候再去往这个方向上奋斗,只会收获迷茫与压抑,对时代、对自己都无什么帮忙。正如Google抓住了这个机会,因此他成功了,他引领了潮流。
|