《Hadoop高级编程——构建与实现大数据解决方案》书评

出版日期:2014-8-1
ISBN:9787302369062
作者:(美)卢博林斯凯(Lublinsky, B.),(美)雅库伯维奇(Yakubovich, A.),(美)史密斯(Smith, K. T.)
页数:448页

快速了解本书,如何开始学习?

在这个技术不停地改变的快节奏世界中,我们已经被信息淹没。我们在不断生成和存储大量的数据。随着网络上的设备不断丰富,我们已经看到了信息格式和数据多样性的惊人增长——大数据。但是我们要直面它——如果我们忠实于自己的话,多数组织还不能积极有效地管理这大量的数据,我们也还不能使这些信息发挥优势,从而更好地做出决策,更聪明地做生意。我们已经被大批量的数据所淹没,但同时我们又渴求知识。这会导致公司损失生产力、损失机会,并损失收入。在过去的10年中,很多技术承诺帮助处理和分析我们拥有的大批量信息,而这些技术多数都出现了不足。我们知道这一点,因为作为专注于数据的程序员,我们已经都尝试过了。很多方法都是受专利保护的,导致供应商被锁定。一些方法看起来很有希望,但无法扩展以处理大型数据集,还有很多是宣传很好但不能满足预期,或者在关键时刻还没有准备好。然而,Apache Hadoop登场之后,一切都不一样了。当然这里也有宣传的因素,但它是一个开源项目,已经在大规模可扩展商业应用中取得了不可思议的成功。尽管学习曲线有些陡峭,但这是我们第一次可以轻松地编写程序并对大规模数据进行分析——以一种以前我们做不到的方式。MapReduce算法可以使开发人员处理分布在可扩展机器集群上的数据,基于该算法,我们以过去无法做到的方式,在进行复杂数据分析方面取得了很大的成功。关于Hadoop的书并不缺少。人们写了很多,而且其中很多书都很好。那么,为什么还要编写本书呢?当我们开始使用Hadoop时,希望有一本书不只是介绍API,还要解释Hadoop生态系统的诸多部分如何共同工作,并可用于构建企业级的解决方案。我们在寻找这样一本书,它可以带领读者学习数据设计及其对实现的影响,并解释MapReduce的工作原理,以及如何用MapReduce来重新表述特定的业务问题。我们在寻找如下问题的答案:● MapReduce的强项和弱点是什么,以及我们如何自定义它以便更好地满足自己的需求?● 为什么我们需要在MapReduce之上有一个额外的协调层,以及Oozie是怎么满足这个需求的?● 我们如何使用特定领域语言(Domain-Specific Language,DSL)来简化MapReduce开发?● 每个人都在讲的实时Hadoop是什么,它可以做什么,以及它不能做什么?它的工作原理是什么?● 我们如何确保Hadoop应用程序的安全,我们需要考虑什么,我们必须考虑什么安全隐患,以及处理这些问题有哪些方法?● 我们如何将自己的Hadoop应用程序迁移到云中,以及这样做有哪些重要的考虑因素?当开始Hadoop探险时,我们不得不夜以继日地浏览整个Internet和Hadoop源代码,与人们交谈并尝试使用这些代码来找到这些问题的答案。然后我们决定通过撰写本书来分享自己的发现和经验,并希望本书能够成为读者理解和使用Hadoop的一个良好的开端。本书读者对象本书是由程序员写给程序员的。本书的作者是开发企业级解决方案的技术人员,我们对于本书的目标是为使用Hadoop的其他开发人员提供可靠的、实用的建议。本书的目标人群是试图更好地理解和利用Hadoop——不只是做简单的数据分析,同时也将Hadoop用作企业级应用的基础——的软件架构师和开发人员。因为Hadoop是一个基于Java的框架,所以本书包含了大量的代码示例,需要读者熟悉Java。此外,作者假设读者在一定程度上熟悉Hadoop,并有一些入门级的MapReduce知识。尽管本书在设计上希望读者从头到尾以逐个模块的方式阅读,但某些章节可能更适合特定的人群。想要理解Hadoop数据存储能力的数据设计人员更可能从第2章中受益。从MapReduce开始的程序员们最有可能关注第3~第5章,以及第13章。意识到不使用像Oozie这样的Workflow系统会导致复杂性的开发人员,最可能关注第6~第8章。那些对实时Hadoop感兴趣的人们会关注第9章。有兴趣在实现中使用亚马逊云的人们可能会关注第11章,而在乎安全性的人们可能关注第10章和第12章。本书涵盖的内容现在,每个人都在处理大数据。很多企业正在最大限度地实施大规模可扩展性数据分析工作,其中多数企业都在尝试使用Hadoop来完成该目标。本书集中讲述构建基于Hadoop高级企业级应用的架构和方法,并为此涵盖了如下主要Hadoop组件:● 基于Hadoop的企业级应用的架构蓝图● 基础的Hadoop数据存储和组织系统● Hadoop的主要执行框架(MapReduce)● Hadoop的Workflow/Coordinator服务器(Oozie)● 实现基于Hadoop的实时系统的技术● 在云环境中运行Hadoop的方式● 确保Hadoop应用安全的技术和架构本书的组织结构本书被编排为13章。第1章(“大数据和Hadoop生态系统”)介绍了大数据,以及Hadoop用作大数据实现的方法。在该章中,我们学习Hadoop如何解决大数据带来的挑战,以及哪些Hadoop核心组件可以共同工作来创建丰富的Hadoop生态系统,适合解决很多现实世界的问题。我们也学习了多个可用的Hadoop发行版,以及新出现的用于大数据应用的架构模式。任何大数据实现的基础都是数据存储设计。第2章(“Hadoop数据存储”)涵盖了Hadoop支持的分布式数据存储。该章讨论了两个主要的Hadoop数据存储机制——HDFS和HBase——的架构和API,并提供了何时使用哪种机制的一些建议。这里我们学习了HDFS(联盟)和HBase新文件格式以及协处理器的最新发展。该章也涵盖了HCatalog(Hadoop元数据管理解决方案)和Avro(一个序列化/组装框架),以及它们在Hadoop数据存储中扮演的角色。作为主要的Hadoop执行框架,MapReduce是本书的主要议题之一,包含在第3~第5章中。第3章(“使用MapReduce处理数据”)介绍了MapReduce框架。涵盖了MapReduce架构、它的主要组件和MapReduce编程模型。该章也重点介绍了MapReduce应用的设计、设计模式以及MapReduce的一般注意事项。第4章(“自定义MapReduce执行”)建立在第3章的基础之上,涵盖了自定义MapReduce执行的重要方法。我们学习MapReduce执行可以被自定义的一些方面,并使用工作代码示例来揭示如何做到这一点。最后,在第5章(“构建可靠的MapReduce应用程序”)中,我们学习了构建可靠的MapReduce应用程序的途径,包括测试和调试,以及使用内置的MapReduce工具(例如,日志和计数器)来查看MapReduce的内部执行。尽管MapReduce自身具有强大的功能,但实际的解决方案通常需要将多个MapReduce应用组合到一起,这涉及很多的复杂性。通过使用Hadoop Workflow/Coordinator引擎—— Oozie——可以显著地简化这种复杂性,Oozie将在第6~第8章中描述。第6章(“使用Oozie自动化数据处理”)介绍了Oozie。这里我们学习Oozie的整体架构、它的主要组件,以及每个组件的编程语言。我们也学习Oozie的整体执行模型,以及可以和Oozie服务器交互的方式。第7章(“使用Oozie”)建立在第6章所学知识的基础之上并展示了一个实用的从无到有使用Oozie开发实际应用的示例。该示例演示了如何在解决方案中使用不同的Oozie组件,并演示了设计和实现途径。最后,第8章(“高级Oozie特性”)讨论一些高级特性,并展示了扩展Oozie和将它与其他企业级应用集成的方法。在该章中,我们学习了一些开发人员需要知道的建议和技巧——例如,Oozie代码的动态生成如何帮助开发人员克服一些现存的、任何其他方法都不能解决的Oozie缺点。当今与大数据相关的最热门的趋势之一是进行“实时分析”的能力。该主题在第9章(“实时Hadoop”)中讨论。该章开始提供了一些目前使用的实时Hadoop应用示例,并展示了这些实现的整体架构需求。我们将学习构建这样一些实现的3种主要方法——基于HBase的应用程序、实时查询和基于流的处理。该章提供了两个基于HBase的实时应用——一个假想的图片管理系统和一个基于Lucene、使用HBase作为后端的搜索引擎。我们也会学习实现实时查询的整体架构,以及两个具体的产品——Apache Drill和Cloudera的Impala——实现实时查询的方式。该章同时涵盖了另一种类型的实时应用——复杂事件处理,包括它的整体架构,以及HFlame和Storm实现该架构的方式。最后,该章提供了实时查询、复杂事件处理和MapReduce之间的一个对比。Hadoop应用程序开发中一个经常被忽略但至关重要的主题是Hadoop安全。第10章(“Hadoop安全”)深入讨论了与大数据分析和Hadoop——确切地说是Hadoop安全模型和最佳实践——相关的安全性考虑。这里我们学习Rhino项目——一个支持开发人员扩展Hadoop安全能力(包括加密、认证、授权、单点登录(Single-Sign-On,SSO)和审计)的框架。基于云的Hadoop使用需要有趣的架构决策。第11章(“在AWS上运行Hadoop应用”)描述了这些挑战,并涵盖了在亚马逊Web服务(Amazon Web Service,AWS)云上运行Hadoop的不同方法。该章也讨论了一些权衡选择并考察了一些最佳实践。我们将学习弹性MapReduce(Elastic MapReduce,EMR)和可以用于补充Hadoop功能的额外AWS服务(例如S3、CloudWatch、Simple Workflow等)。除了确保Hadoop自身的安全,Hadoop实现通常和其他企业级组件集成——数据经常被导入到Hadoop并被导出。第12章(“为Hadoop实现构建企业级安全解决方案”)涵盖了如何确保使用Hadoop的企业级应用尽可能安全,并提供了示例和最佳实践。作为本书的最后一章,第13章(“Hadoop的未来”)浏览了一些当前和未来将发生的Hadoop行业趋势和创新。这里我们学习了可用来简化MapReduce开发的Hadoop DSL及其使用,以及新的MapReduce资源管理系统(YARN)和MapReduce运行时扩展(Tez)。我们也学习了最重要的Hadoop发展方向和趋势。使用本书需要的条件本书中展示的所有代码都用Java实现。因此,要使用这些代码,读者需要Java编译器和开发环境。所有的开发都在Eclipse中完成,但由于每个项目都有一个Maven pom文件,因而把代码迁移到任何您所选择的开发环境都足够简单。所有的数据访问和MapReduce代码都在Hadoop 1(Cloudera CDH 3发行版和Amazon EMR)和Hadoop 2(Cloudera CDH 4发行版)上测试通过。因此,这些代码应当可以在任何Hadoop发行版上运行。Oozie代码在最新版的Oozie(例如,可以从Cloudera CDH 4.1发行版获得)上测试通过。示例的源代码都以Eclipse项目进行组织(每章一个项目),并可以从Wrox网站www.wrox.com/go/prohadoopsolutions下载获得。源代码在学习本书中的示例时,读者可以选择手工输入所有的代码,也可以使用随书的源代码文件。本书的源代码可以从www.wrox.com下载获得。具体对本书而言,专门的代码下载位于www.wrox.com/go/prohadoopsolutions的Download Code链接。读者也可以在www.wrox.com按照本书英文版的ISBN(本书英文版的ISBN是978-1-118-61193-7)搜索本书来找到这些代码。当前所有的Wrox图书代码下载的完整列表位于www.wrox.com/dynamic/books/download.aspx。在整个选定的各章中,读者也可以在需要时,从代码清单的标题和文本中找到代码文件名称的引用。www.wrox.com上的大多数代码都压缩在.ZIP、.RAR文档或适合特定平台的类似文档中。一旦下载了这些代码,只需要使用合适的压缩工具将其解压即可。注意:由于许多图书的标题都很类似,因此按ISBN搜索是最简单的,本书英文版的ISBN是978-1-118-61193-7。另外,读者也可以通过网址www.wrox.com/dynamic/books/download.aspx 进入Wrox代码下载主页面,找到本书以及所有其他Wrox图书的可用代码。勘误表尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果您在本书中发现了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。要找到本书英文版的勘误表,可以登录http://www.wrox.com/go/prohadoopsolutions,单击Errata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。如果您发现的错误在我们的勘误表里还没有出现的话,请登录www.wrox.com/contact/ techsupport.shtml并完成那里的表格,把您发现的错误发送给我们。我们会检查您的反馈信息,如果正确,我们将在本书的勘误表页面张贴该错误消息,并在本书的后续版本加以修订。p2p. wrox.com要与作者和同行讨论,请加入p2p.wrox.com上的P2P论坛。这个论坛是一个基于Web的系统,便于您张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当您感兴趣的主题在论坛上有新帖子发布时,系统会向您发送电子邮件。Wrox的作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。在http://p2p.wrox.com上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:(1) 进入p2p.wrox.com,单击Register链接。(2) 阅读使用协议,并单击Agree按钮。(3) 填写加入该论坛所需要的信息和自己希望提供的其他可选信息,单击Submit按钮。(4) 您会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。注意:不加入P2P也可以阅读论坛上的消息,但要张贴自己的消息,就必须先加入该论坛。加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。要想了解更多的有关论坛软件的工作情况,以及P2P和Wrox图书的许多常见问题的解答,就一定要阅读FAQ,只需要在任意P2P页面上单击FAQ链接即可。


 Hadoop高级编程——构建与实现大数据解决方案下载


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024