京公网安备 11010802034615号
经营许可证编号:京B2-20210330
大数据和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及其组件生态圈。可以利用这些组件构建可扩展、分布式的数据分析解决方案。
由于“人力资本”是一个无形的、对成功至关重要的因素,所以多数企业都认为他们的员工才是他们最有价值的财产。其实还有另外一个关键因素——企业所拥有的“信息”。信息可信度、信息量和信息可访问性可以增强企业信息能力,从而使企业做出更好的决策。
要理解企业产生的大量的数字信息是非常困难的。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为企业提供了一个行之有效的方法,来进行大数据分析。
1.1.1 Hadoop:迎接大数据挑战
Apache的Hadoop通过简化数据密集型、高度并行的分布式应用的实现,以此迎接大数据的挑战。世界各地的企业、大学和其它组织都在使用Hadoop,Hadoop把任务分成任务片,分布在数千台计算机上,从而进行快速分析,并分布式存储大量的数据。Hadoop利用大量廉价的计算机,提供了一个可扩展强,可靠性高的机制;并利用廉价的方式来存储大量数据。Hadoop还提供了新的和改进的分析技术,从而使大量结构化数据的复杂分析变为可能。
Hadoop与以前的分布式方法的区别:
此外,Hadoop隐藏了复杂的分布式实现过程,提供了一种简单的编程方法。从而,Hadoop得以提供强大的数据分析机制,包括以下内容:
对于大多数Hadoop用户而言,Hadoop最重要的特征是,将业务规划和基础设施维护进行了清晰的划分。为那些专注于商业业务的用户,隐藏了Hadoop的基础设施的复杂性,并提供了一个易于使用的平台,从而使复杂的分布式计算的问题简单化。
1.1.2 商业界的数据科学
Hadoop的存储和处理大数据的能力经常与“数据科学”挂钩。虽然该词是由彼得·诺尔在20世纪60年代提出的,但是直到最近才引起人们广泛关注。美国雪域大学杰弗里·斯坦顿德教授把“数据科学”定义为“一个专注于搜集、分析、可视化、管理和大量信息保存的新兴领域”。
通常将“数据科学”这一术语用在商业业务分析中,与实际中的“大数据”学科有很大的不同。在数据科学中,业务分析师通过研究现有商业运作模式,来提升业务。
数据科学的目标是从数据提取出数据的真正含义。数据科学家基于数学、统计分析、模式识别、机器学习、高性能计算和数据仓库等来工作,通过分析数据来发现事物发展趋势,并基于收集到的信息开发新业务。
在过去的几年中,许多数据库和编程方面的业务分析师成为了数据科学家。他们在Hadoop生态圈中,使用高级的SQL工具(比如:Hive或者实时Hadoop查询工具)进行数据分析,以做出明智的业务决策。
不只是“一个大数据库”
在本书后面会深入讲解Hadoop,但在此之前,让我们先消除这样的误区——Hadoop仅仅是数据分析师使用的工具。因为对于那些熟悉数据库查询的人,Hadoop工具(如Hive和实时Hadoop查询)提供了较低的门槛,所以一些人认为Hadoop仅仅是以数据库为中心的工具。
此外,如果你正在试图解决的问题超出了数据分析的范畴,并涉及到真正的“科学数据”的问题,这时,SQL数据挖掘技术将明显变得不再实用。例如,大多数问题的解决,需要用到线性代数和其它复杂的数学应用程序,然而,这些问题都不能用SQL很好地解决。
这意味着,使用Hadoop工具是解决这类问题的最好办法。利用Hadoop的MapReduce编程模型,不但解决了数据科学的问题,而且明显简化了企业级应用创建和部署的过程。可以通过多种方式做到这一点——可以使用一些工具,这些工具往往要求开发者具备软件开发技能。例如,通过使用基于Oozie的应用程序进行协调(在本书后面将详细介绍Oozie),可以简化多个应用程序的汇集过程,并非常灵活地链接来自多个工具的任务。在本书中,你会看到Hadoop在企业中的实际应用,以及什么时候使用这些工具。
目前Hadoop的开发,主要是为了更好地支持数据科学家。Hadoop提供了一个强大的计算平台,拥有高扩展性和并行执行能力,非常适合应用于新一代功能强大的数据科学和企业级应用。并且,Hadoop还提供了可伸缩的分布式存储和MapReduce编程模式。企业正在使用Hadoop解决相关业务问题,主要集中在以下几个方面:
类似的例子数不胜数。企业正在逐步使用Hadoop进行数据分析,从而作出更好的战略决策。总而言之,数据科学已经进入了商界。
不仅仅是针对商业的大数据工具
虽然这里的大多数例子针对于商业,但是Hadoop也被广泛应用在科学界和公有企业。
最近一项由美国科技基金会进行的研究指出,医疗研究人员已经证明,大数据分析可以被用于分析癌症患者的信息,以提高治疗效果(比如,苹果创始人乔布斯的治疗过程)。警察部门正在使用大数据工具,来预测犯罪可能的发生时间和地点,从而降低了犯罪率。同样的调查也表明,能源方面的官员正在利用大数据工具,分析相关的能量损耗和潜在的电网故障问题。
通过分析大数据可以发现模型和趋势,提高效率,从而用新方法来作出更好的决策。
架构师和开发人员通常会使用一种软件工具,用于其特定的用途软件开发。例如,他们可能会说,Tomcat是Apache Web服务器,MySQL是一个数据库工具。
然而,当提到Hadoop的时候,事情变得有点复杂。Hadoop包括大量的工具,用来协同工作。因此,Hadoop可用于完成许多事情,以至于,人们常常根据他们使用的方式来定义它。
对于一些人来说,Hadoop是一个数据管理系统。他们认为Hadoop是数据分析的核心,汇集了结构化和非结构化的数据,这些数据分布在传统的企业数据栈的每一层。对于其他人,Hadoop是一个大规模并行处理框架,拥有超级计算能力,定位于推动企业级应用的执行。还有一些人认为Hadoop作为一个开源社区,主要为解决大数据的问题提供工具和软件。因为Hadoop可以用来解决很多问题,所以很多人认为Hadoop是一个基本框架。
虽然Hadoop提供了这么多的功能,但是仍然应该把它归类为多个组件组成的Hadoop生态圈,这些组件包括数据存储、数据集成、数据处理和其它进行数据分析的专门工具。
随着时间的推移,Hadoop生态圈越来越大,图1-1给出了Hadoop核心组件。
图1:Hadoop生态圈的核心组成组件
从图1-1的底部开始,Hadoop生态圈由以下内容组成:
HDFS—— Hadoop生态圈的基本组成部分是Hadoop分布式文件系统(HDFS)。HDFS是一种数据分布式保存机制,数据被保存在计算机集群上。数据写入一次,读取多次。HDFS为HBase等工具提供了基础。
MapReduce——Hadoop的主要执行框架是MapReduce,它是一个分布式、并行处理的编程模型。MapReduce把任务分为map(映射)阶段和reduce(化简)。开发人员使用存储在HDFS中数据(可实现快速存储),编写Hadoop的MapReduce任务。由于MapReduce工作原理的特性, Hadoop能以并行的方式访问数据,从而实现快速访问数据。
Hbase——HBase是一个建立在HDFS之上,面向列的NoSQL数据库,用于快速读/写大量数据。HBase使用Zookeeper进行管理,确保所有组件都正常运行。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
人力资源专员是HR体系的执行入口。招聘信息发布、简历初筛、面试安排、考勤汇总、入离职手续、劳动合同与档案管理,大多由这个岗 ...
2026-10-22人力资源经理问“必学技巧”,真正要解决的不是知识清单不够长,而是时间有限、业务催得紧,学完却用不上。更有效的路径是:先用 ...
2026-10-22内容营销岗位的核心任务,不是“把文案写得更漂亮”,而是围绕目标受众,用持续的内容供给影响认知、推动转化并沉淀复购。它至少 ...
2026-10-22理财经理培训课程很多,难的是判断“先学什么、后学什么、学完能做什么”。与其按课程名称罗列,不如先看岗位任务:客户分层与维 ...
2026-10-22理财经理的知识结构,可以先用一句话概括:合规与产品知识决定“不出错”,客户经营与资产配置决定“够不够专业”,市场研判与数 ...
2026-10-22经济学背景做数据分析,优势不在工具,而在问题意识:供需如何相互作用、成本与收益如何权衡、变量之间是相关还是因果。真正的缺 ...
2026-10-22需要,但要把“需要”理解准确。经济学本身就在处理数据:GDP、物价、就业、企业营收、问卷调研,都是经济分析的原料。真正的区 ...
2026-10-22经济学分析能力不是单一技能,它至少由三层构成:把现实问题转成可检验假设的理论框架能力、用数据与统计方法验证假设的工具能力 ...
2026-10-22金融分析师的知识提升,先补的不是更多模型,而是让结论可复核的底层能力。按任务顺序,大致是四层:财务与业务理解、指标口径管 ...
2026-10-22金融分析师的“通用技能”,指换到不同机构、不同行业组仍用得上的底层能力,而非某家公司内部系统的操作经验。按任务拆,日常要 ...
2026-10-22先给结论:数据分析证书不是金融分析师的准入条件,招聘方也不会因为一张证书就直接判断你能做分析。要不要考,取决于你当前任务 ...
2026-10-22金融分析师的核心技能,不是“会看K线”或“会讲宏观”,而是能把一家公司、一个行业或一类资产,转化为可核查的数据判断与书面 ...
2026-10-22产品经理的知识提升,不是把需求文档、原型、SQL、数据分析、项目管理都学一遍,而是先对准目标岗位的真实任务,找出自己最缺的 ...
2026-10-22产品专员提升工作知识,最有效的方式不是先囤课程,而是围绕日常交付的四件事来补:需求调研与优先级判断、原型与PRD表达、竞品 ...
2026-10-22产品运营专员提升个人能力,常见误区是先把Excel、SQL、Python列成一张学习清单,然后从第一个工具开始学。更有效的做法是先回答 ...
2026-10-22产品运营的能力提升,最怕从“课程目录”出发:今天学增长模型,明天背SQL语法,学完却说不清自己负责的功能为什么激活率低。更 ...
2026-10-22产品经理的技能和影响力不是两条分开的赛道。技能决定你能不能把问题分析清楚、把方案设计对;影响力决定你的判断能否被团队接受 ...
2026-10-22产品经理要学的数据分析能力,不是“会写SQL”或“会用BI工具”这么简单。更准确地说,是围绕需求评估、功能迭代、指标监控、实 ...
2026-10-22产品经理的业务能力,不是“会用多少工具”,而是能否把业务目标翻译成可执行的指标、用数据验证判断、再推动方案落地并复盘。全 ...
2026-10-22产品经理快速提升职场技能,关键不在多报几门课,而在于先找出当前岗位上最影响产出的一两项能力缺口,围绕“业务理解—需求与指 ...
2026-10-22