转自:http://www.cnblogs.com/hadoopdev/p/3528616.htmlhtml
1、前言:web
很是感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,通过两周的努力,已经有啦初步的成果,目前第1章 大数据和Hadoop生态圈小组已经翻译完成,在此对:译者:贾艳成 QQ:496830205 表示感谢。算法
2、意见征集:数据库
本章节由《Hadoop专业解决方案群:313702010》翻译小组完成,为小组校验稿,已经经过小组内部校验经过,特此面向网络征集意见,若是对本章节内容有任何异议,请在评论中加以说明,说明时,请标明行号,也能够以修订的方式,发送给我。很是感谢。apache
3、原书说明编程
英文原书《Wrox.Professional.Hadoop.Solutions》第一章,请参照英文原文。设计模式
4、翻译原稿安全
本章主要内容:服务器
你可能听别人说过,咱们生活在“大数据”的环境中。技术驱动着当今世界的发展,计算能力飞速增加,电子设备愈来愈广泛,因特网愈来愈容易接入,与此同时,比以往任什么时候候都多的数据正在被传输和收集。网络
企业正在以惊人的速度产生数据。仅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为企业提供了一个行之有效的方法,来进行大数据分析。
Apache的Hadoop经过简化数据密集型、高度并行的分布式应用的实现,以此迎接大数据的挑战。世界各地的企业、大学和其它组织都在使用Hadoop,Hadoop把任务分红任务片,分布在数千台计算机上,从而进行快速分析,并分布式存储大量的数据。Hadoop利用大量廉价的计算机,提供了一个可扩展强,可靠性高的机制;并利用廉价的方式来存储大量数据。Hadoop还提供了新的和改进的分析技术,从而使大量结构化数据的复杂分析变为可能。
Hadoop与之前的分布式方法的区别:
此外,Hadoop隐藏了复杂的分布式实现过程,提供了一种简单的编程方法。从而,Hadoop得以提供强大的数据分析机制,包括如下内容:
对于大多数Hadoop用户而言,Hadoop最重要的特征是,将业务规划和基础设施维护进行了清晰的划分。为那些专一于商业业务的用户,隐藏了Hadoop的基础设施的复杂性,并提供了一个易于使用的平台,从而使复杂的分布式计算的问题简单化。
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生态圈由如下内容组成:
Hadoop的生态圈还包括如下几个框架,用来与其它企业融合:
除了在图1-1所示的核心部件外,Hadoop生态圈正在不断增加,以提供更新功能和组件,如如下内容:
Hadoop家族成员正在逐步增长。在本书中,主要涉及到了三个新的Apache Hadoop孵化项目。
孵化项目演变到Apach项目的过程
下面将会简要介绍Apache基金会的运做方式,以及Apache各类项目及其彼此之间的联系。Apache的我的会员共同治理整个组织,Apache提供项目的建立、成熟和回收。
新的项目开始于“孵化器”。创建Apache孵化器,是为了帮助新项目加入Apache。Apache提供管理和检验,通过筛选后,再创建新的项目或者子项目。在建立孵化项目后,Apache会评估项目的成熟度,并负责将孵化器中的项目“毕业”到Apache项目或子项目。孵化器也会因为各类缘由而终止一些项目。
要查看孵化器中项目(当前的、孵化成功的、暂时中止的和回收的)的完整列表,能够经过此网址:http://incubator.apache.org/projects/index.html。
当今大多数的Hadoop方面的书籍,要么专一于Hadoop生态圈中某个独立组件的描述,要么介绍如何使用Hadoop业务分析工具(如Pig和Hive)。尽管这些方面也很重要,可是这些书籍一般没有进行深刻的描述,并不能帮助架构师创建基于Hadoop的企业级应用或复杂应用。
虽然Hadoop是开源的Apache(和如今GitHub)项目,可是在Hadoop行业,仍然出现了大量的新兴公司,以帮助人们更方便地使用Hadoop为目标。这些企业大多将Hadoop发行版进行打包、改进,以确保全部的软件一块儿工做,并提供技术支持。如今,Apache本身也在开发更多的工具来简化Hadoop的使用,并扩展其功能。这些工具是专有的,并有所差别。有的工具成为了Apache Hadoop家族中新项目的基础。其中,有些是通过Apache2许可的开源GitHub项目。尽管全部这些公司都基于Apache Hadoop发行版,可是他们都与Hadoop的愿景有了细微的不一样——应该选取哪一个方向,怎样完成它。
这些公司之间最大的区别是:Apache源代码的使用。除了MapR公司以外,都认为Hadoop应该由Apache项目的代码定义。相反,MapR认为Apache的代码只是实施参考,能够基于Apache提供的API来实现本身的需求。这种方法使得MapR作出了很大的创新,特别是在HDFS和HBase方面,MapR让这两个基本Hadoop的存储机制更加可靠、更加高性能。MapR还推出了高速网络文件系统(NFS),能够访问HDFS,从而大大简化了一些企业级应用的集成。
有两个关注度较高的Hadoop发行版,分别由亚马逊和微软发布。二者都提供Hadoop的预安装版本,运行于相应的云服务平台(Amazon or Azure),提供PaaS服务。它们都提供了扩展服务,容许开发人员不只可以利用Hadoop的本地HDFS,也能够经过HDFS映射利用微软和雅虎的数据存储机制(Amazon的S3,和Azure的Windows Azure存储机制)。亚马逊还提供了,在S3上面保存和恢复HBase内容的功能。
表1-1展现了主要的Hadoop发行版的主要特色。
表1: 不一样的Hadoop供应商
供应商 |
HADOOP特性 |
Cloudera CDH,我的版和企业版 |
CDH基于Hadoop2,(撰写本文时为4.1.2版本)包括HDFS,YARN,HBas,MapReduce,Hive, Pig, Zookeeper, Oozie, Mahout, Hue以及其余开源工具(包括实时查询引擎Impala)。Cloudera的我的免费版包括全部CDH工具,和支持高达50个节点的集群管理器。Cloudera企业版提供了更复杂的管理器,支持无限数量的集群节点,可以主动监控,并额外提供了数据分析工具。 |
Hortonworks数据平台 |
发行版(Alpha 2.0版)基于Hadoop2,包括HDFS,YARN, HBase, MapReduce, Hive, Pig, HCatalog, Zookeeper, Oozie, Mahout, Hue, Ambari, Tez,实时版Hive(Stinger)和其余开源工具。Hortonworks提供了高可用性支持、高性能的Hive ODBC驱动和针对大数据的Talend Open Studio。 |
MapR |
基于Hadoop1,发行版(撰写本文时为版本M7)包括HDFS, HBase, MapReduce, Hive, Mahout, Oozie, Pig, ZooKeeper, Hue以及其余开源工具。它还包括直接NFS访问、快照、“高实用性”镜像、专有的HBase实现,与Apache彻底兼容的API和一个MapR管理控制台。 |
IBM InfoSphere BigInsights |
基于Hadoop1,提供了两个版本。基本版包括HDFS, Hbase, MapReduce, Hive, Mahout, Oozie, Pig, ZooKeeper, Hue以及其余一些开源工具。并提供IBM的安装程序和数据访问工具的基本版本。企业版增长了复杂的做业管理工具、集成了数据源的数据访问层和BigSheets(相似电子表格的界面,用来操做集群中的数据)。 |
GreenPlum的Pivotal HD |
在撰写本文时,最新版基于Hadoop2,包括HDFS, MapReduce, Hive, Pig, HBase, Zookeeper, Sqoop, Flume和其余开源工具。Pivotal HD企业级还增长了先进的HAWQ数据库服务(ADS),和丰富、成熟、并行的SQL处理工具。 |
亚马逊弹性MapReduce(EMR) |
在撰写本文时,最新版基于Hadoop1。亚马逊EMR是一个web服务,可以使用户方便且经济高效地处理海量的数据。它采用Hadoop框架,运行在亚马逊弹性计算云EC2和简单存储服务S3之上。包括HDFS(S3支持),HBase(专有的备份恢复),MapReduce,, Hive (Dynamo的补充支持), Pig, and Zookeeper. |
Windows Azure的HDlnsight |
HDlnsight基于Hortonworks数据平台(Hadoop1),运行在Azure云。它集成了微软管理控制台,易于部署,易于System Center的集成。经过使用Excel插件,能够整合Excel数据。经过Hive开放式数据库链接(ODBC)驱动程序,能够集成Microsoft SQL Server分析服务(SSAS)、PowerPivot和Power View。Azure Marketplace受权客户链接数据、智能挖掘算法以及防火墙以外的人。Windows Azure Marketplace从受信任的第三方供应商中,提供了数百个数据集。 |
固然,大量的发行版让你疑惑“我应该使用哪一个发行版?”当公司/部门决定采用一个具体的版本时,应该考虑如下几点:
技术细节——包括Hadoop的版本、组件、专有功能部件等等。
易于部署——使用工具箱来实现管理的部署、版本升级、打补丁等等。
易于维护——主要包括集群管理、多中心的支持、灾难恢复支持等等。
成本——包括针发行版的实施成本、计费模式和许可证。
企业集成的支持——Hadoop应用程序与企业中其余部分的集成。
版本的选择依赖于,你打算利用Hadoop来解决哪些问题。本书中的讨论与版本无关,由于笔者看中的是每一个发行版提供的价值。
为了知足大数据带来的新挑战,须要从新思考构建数据分析的程序的方式。传统的在数据库中存储数据,构建应用程序的方法,对于大数据处理将再也不有效。主要由于:
所以,一个典型的基于Hadoop的企业级应用如图1-2所示。在这些应用中,包括数据存储层、数据处理层、实时访问层和安全层。要实现这种体系结构,不只须要理解Hadoop组件所涉及的API,并且须要理解他们的功能和局限性,以及每一个组件在总体架构中的做用。
如图1-2所示,数据存储层包括源数据和中间数据。源数据主要来自这些外部数据源,外部数据源包括企业应用程序、外部数据库、执行日志和其它数据源。中间数据结果来自Hadoop的执行过程,它们被Hadoop的实时应用程序使用,并交付给其余应用程序和终端用户。
图1-2: Hadoop企业级应用
可使用不一样的机制将源数据转移到Hadoop,包括:Sqoop,Flume,直接安装HDFS做为一个网络文件系统(NFS),或者利用Hadoop的实时服务和应用程序。在HDFS中,新的数据不会覆盖现有数据,而是新建一个数据版本。这一点很重要,由于HDFS是一个“写一次”的文件系统。
对于数据处理层,Oozie预处理源数据,并将其转换为中间数据。不一样于源数据,中间数据会被覆盖,没有多个版本,因此中间数据量不会很大。
对于实时访问层,Hadoop的实时应用程序既支持直接数据访问,也支持基于数据集的访问。这些应用程序读取基于Hadoop的中间数据,并将源数据存储在Hadoop。该应用程序也能够用于服务用户,或者用于其它企业的Hadoop集成。
源数据用来存储和初步处理数据,中间数据用于传递和整合数据。由于采用了源数据和中间数据彻底分离的结构,因此容许开发人员在没有任何事务处理需求的状况下,构建任何虚拟和复杂的应用程序。经过中间预处理过程,明显减小了服务数据量,使得实时数据访问更加灵活。
HADOOP扩充性
虽然许多文章认为,对于开发人员来说,Hadoop隐藏了底层的复杂性。可是,实际上是这些文章没有充分认识到Hadoop的可扩展。
经过设计Hadoop的实现方式,可使开发人员轻松、无缝地集成新的功能到Hadoop中执行。Hadoop明确指定一些类库来负责MapReduce执行的不一样阶段。经过这种方式,知足了开发者执行特定问题的要求,从而确保每个做业以最低成本、最高性能性能来执行。
能够自定义Hadoop执行的如下内容:
本书有一部份内容,在他人工做成果的基础上,对自定义方法,以及实现方式进行了专门的描述。
本书涵盖了Hadoop企业级应用的全部主要层,如图1-2所示。
第2章介绍了构建数据层的方法,包括HDFS和HBase(架构和API)。而后,对二者进行对比分析,以及如何将HDFS和HBase相结合。本章还介绍了Avro(Hadoop的新的序列化框架),以及它在存储或访问数据中的做用。最后,你将了解HCatalog,以及用它来作广告和访问数据的方式。
本书将对数据处理进行了大量的描述。对于应用程序的数据处理部分,笔者建议使用MapReduce和Oozie。
在本书中,为何以MapReduce源码为核心?
你可能会问,为何本书将重点放在MapReduce源码上,而不是可让MapReduce编程变得更简单的高级语言上面。你能够在网上或者Hadoop社区内,找到不少关于这方面的讨论。在这些讨论中给出的解释是,MapReduce源码量(就代码行数而言)比提供相同的功能的Pig源码量一般要多不少。尽管这是一个不争的事实,不过还有一些其余因素:
在第3章中,您将了解MapReduce的架构、主要构成和编程模型。本章介绍了MapReduce的应用程序设计、设计模式和MapReduce注意事项。本章还讲介绍MapReduce的执行是如何实现的。正如所提到的,MapReduce最强的特征之一是它能够自定义执行。第4章会介绍自定义选项的详细信息,并举例说明。第5章经过演示实例,对MapReduce进一步讨论,构建可靠的MapReduce应用。
尽管MapReduce功能很强大,可是对于一个切实可行的解决方案,一般须要将多个MapReduce应用集合到在一块儿。这个过程很是复杂,经过使用Hadoop的Workflow/Coordinator(工做流/协调员)引擎,能够被大大简化MapReduce应用的集成。
Oozie的价值
Oozie是Hadoop中最容易被低估的组件。不多有人(甚至没有)在Hadoop书籍讨论这个极其重要的组件。本书不但彰显了Oozie什么能够作,并且还提供了一个端到端的例子,用来展现如何利用Oozie功能来解决实际问题。相似于Hadoop的其他部分,Oozie的功能也具备很好的扩展性。开发者能够经过不一样的方法来扩展Oozie的功能。
在Hadoop中,最容易被低估的挑战是:将Hadoop执行与企业处理的其他部分进行整合。使用Oozie来协调MapReduce应用,并经过公开Oozie API的方式公开了Hadoop进程。经过这种方式,你会很容易就找到更好的集成方法,对Hadoop处理和企业处理部分进行集成。
第6章描述了Oozie是什么,Oozie的体系结构、主要组成、编程语言和执行模型。为了更好地解释每一个Oozie组件的功能和角色,第7章经过使用Oozie应用解决端到端的实际问题。第8章中,经过展现Oozie的一些高级功能,对Oozie进一步描述。这些高级功能包括自定义Workflow活动、动态生成Workflow和支持超级JAR文件(一个包含了全部的包及其依赖关系的JAR文件)。
第9章主要讲解实时访问层。该章首先介绍了一个工业中实时Hadoop应用实例,而后针对实现方式提出了总体架构。接着,介绍了创建这种实现的三种主要方法——基于HBase的应用程序、实时查询以及基于流的处理。本章介绍了整体架构,并提供了基于HBase实时应用的两个例子。而后,描述了一个实时查询体系结构,并讨论了两个具体的实现——Apache Drill 和 Cloudera’s Impala。还介绍了实时查询和MapReduce的对比。最后,您将了解基于Hadoop的复琐事件处理,以及两个具体的实现——Strom和HFlame。
开发企业级应用须要大量的规划,以及信息安全方面的策略。第10章将重点讲解Hadoop的安全模型。
随着云计算的发展,许多企业尝试将他们的Hadoop运行在云上。第11章的重点是,经过使用EMR实现,在亚马逊的云上运行Hadoop应用;而且介绍了其它AWS服务(如S3),用来补充Hadoop的功能。本章还介绍了,经过使用不一样的方法来运行云上的Hadoop,并讨论了最佳实践方案。
除了Hadoop自身的安全问题外,一般Hadoop还须要集成其余企业的组件,来实现数据的导入和导出。第12章将重点介绍,如何才能维护好那些使用了Hadoop的企业级应用,并提供了示例和最佳安全实践,来确保全部Hadoop企业级应用的安全运行。
本章高度归纳了大数据和Hadoop之间的关系。并介绍了大数据及其价值,还介绍了企业面临的大数据挑战,包括数据存储和处理的挑战。经过本章,你还了解了Hadoop及其历史。
经过本章,你了解了Hadoop特色,并知道了为何Hadoop如此适合大数据处理。本章还概述了Hadoop的主要组件,并介绍了一些例子,用来展现Hadoop如何简化数据科学,简化建立企业应用程序的过程。
本章介绍了关于Hadoop发行版本的基础知识,以及为何许多企业倾向于选择特定供应商的发行版。由于他们不但愿处理Apache项目中的兼容问题,或者他们须要供应商的技术支持。
最后,本章讨论了一种分层的方法和模型,用于开发基于Hadoop的企业级应用。
第2章开始将深刻讲解Hadoop的细节,以及如何存储你的数据。