大数据框架Hadoop生态圈第一集
第一章 大数据和Hadoop生态圈
本章主要内容:
► 理解大数据的挑战
► 了解Hadoop生态圈
► 了解Hadoop发行版
► 使用基于Hadoop的企业级应用
你可能听别人说过,我们生活在“大数据”的环境中。技术驱动着当今世界的发展,计算能力飞速增长,电子设备越来越普遍,因特网越来越容易接入,与此同时,比以往任何时候都多的数据正在被传输和收集。
企业正在以惊人的速度产生数据。仅Facebook每天就会收集 250 TB 的数据。Thompson Reuters News Analytics (汤普森路透社新闻分析)显示,现在数字数据的总量比2009年的1ZB(1ZB等同于一百万 PB)多了两倍多,到 2015 年有可能将达到7.9ZB,到 2020 年则有可能会达到35ZB。其他调查机构甚至做出了更高的预测。
随着企业产生并收集的数据量增多,他们开始认识到数据分析的重要性。但是,他们必须先有效地管理好自己拥有的大量信息。这会产生新的挑战:怎样才能存储大量的数据?怎样处理它们?怎样高效地分析它们?既然数据会增加,又如何构建一个可扩展的解决方案?
不仅研究人员和数据科学家要面对大数据的挑战。几年前,在Google+ 大会上,计算机书籍出版者Tim O’Reilly引用过Alistair Croll的话,“这些产生了大量的无明显规律数据的公司,正在被那些产生了相对较少的有规律数据的新创公司取代……”。简而言之,Croll想要说,除非你的企业“理解”你拥有的数据,否则你的企业无法与那些“理解”自身数据的公司抗衡。
企业已经意识到:大数据与商业竞争、态势感知、生产力、科学和创新等密切相关,分析这些大数据能够获得巨大的效益。因为商业竞争正在驱动大数据分析,所以大多数企业认同O’Reilly和Croll的观点。他们认为当今企业的生存依赖于存储、处理和分析大量信息的能力,依赖于是否掌控了接受大数据挑战的能力。
如果你阅读这本书,你将会熟悉这些挑战,熟悉Apache的Hadoop,并且知道Hadoop可以解决哪些问题。本章主要介绍大数据的前景和挑战,并且概述Hadoop及其组件生态圈。可以利用这些组件构建可扩展、分布式的数据分析解决方案。
1.1 当大数据遇到Hadoop
由于“人力资本”是一个无形的、对成功至关重要的因素,所以多数企业都认为他们的员工才是他们最有价值的财产。其实还有另外一个关键因素——企业所拥有的“信息”。信息可信度、信息量和信息可访问性可以增强企业信息能力,从而使企业做出更好的决策。
要理解企业产生的大量的数字信息是非常困难的。IBM指出在过去仅仅两年的时间里产生了世界90%的数据。企业正在收集、处理和存储这些可能成为战略资源的数据。十年前,Michael Daconta, Leo Obrst, and Kevin T.Smith (Indianapolis: Wiley, 2004)写的一本书《The Semantic Web: A Guide to the Future of XML, Web Services, and Knowledge Management》中有句格言“只有拥有最好的信息,知道怎样发现信息,并能够最快利用信息的企业才能立于不败之地”。
知识就是力量。问题是,随着收集的数据越来越多,传统的数据库工具将不能管理,并且快速处理这些数据。这将导致企业“淹没”在自己的数据中:不能有效利用数据,不能理解数据之间的联系,不能理解数据潜在的巨大力量。
人们用“大数据”来描述过于庞大的数据集,这些数据集一般无法使用传统的用于存储、管理、搜索和分析等过程的工具来处理。大数据有众多来源,可以是结构型的,也可以是非结构型的;通过处理和分析大数据,可以发现内部规律和模式,从而做出明智选择。
什么是大数据的挑战?怎么存储、处理和分析如此大的数据量,从而从海量数据中获取有用信息?
分析大数据,需要大量的存储空间和超级计算处理能力。在过去的十年中,研究人员尝试了各种的方法来解决数字信息增加带来的问题。首先,把重点放在了给单个计算机更多的存储、处理能力和内存等上面,却发现单台计算机的分析能力并不能解决问题。随着时间的推移,许多组织实现了分布式系统(通过多台计算机分布任务),但是分布式系统的数据分析解决方案往往很复杂,并且容易出错,甚至速度不够快。
在2002年,Doug Cutting和Mike Cafarella开发一个名为Nutch的项目(专注于解决网络爬虫、建立索引和搜索网页的搜索引擎项目),用于处理大量信息。在为Nutch项目解决存储和处理问题的过程中,他们意识到,需要一个可靠的、分布式计算方法,为Nutch收集大量网页数据。
一年后,谷歌发表了关于谷歌文件系统(GFS)和MapReduce的论文,MapReduce是一个用来处理大型数据集的算法和分布式编程平台。当意识到集群的分布式处理和分布式存储的前景后,Cutting和Cafarella把这些论文作为基础,为Nutch构建分布式平台,开发了我们所熟知的Hadoop分布式文件系统(HDFS)和MapReduce。
在2006年,Yahoo在为搜索引擎建立大量信息的索引的过程中,经历了“大数据”挑战的挣扎之后,看到了Nutch项目的前景,聘请了Doug Cutting,并迅速决定采用Hadoop作为其分布式架构,用来解决搜索引擎方面的问题。雅虎剥离出来Nutch项目的存储和处理部分,形成Apache基金的一个开源项目Hadoop,与此同时Nutch的网络爬虫项目保持自己独立性。此后不久,雅虎开始使用Hadoop分析各种产品应用。该平台非常有效,以至于雅虎把搜索业务和广告业务合并成一个单元,从而更好地利用Hadoop技术。
在过去的10年中,Hadoop已经从搜索引擎相关的平台,演变为最流行通用的计算平台,用于解决大数据带来的挑战。它正在快速成为下一代基于数据的应用程序的基础。市场研究公司IDC预计,到2016年,Hadoop驱动的大数据市场将超过23亿美元。自从2008年建立第一家以Hadoop为中心的公司Cloudera之后,几十家基于Hadoop的创业公司吸引了数亿美元的风险投资。简而言之,Hadoop为企业提供了一个行之有效的方法,来进行大数据分析。
推荐阅读文章