前言

本书目的在于帮助读者理解Hadoop,并用它解决大数据问题。能使用Hadoop这样的数据处理技术进行工作是令人激动的。对大规模数据集进行复杂分析的能力,曾一度被大公司和政府机构所垄断,而现在通过免费的OSS(open source software,开源软件)即可获得这种能力。

该领域看上去有些复杂,并且变化节奏很快,所以理解这方面的基本知识让人望而生畏。这就是本书诞生的意义所在,它帮助读者了解什么是Hadoop,Hadoop是如何工作的,以及如何使用Hadoop从数据中提取有价值的信息。

除了解释Hadoop的核心机制,本书也会用几章内容来学习其他相关技术,这些技术要么用到了Hadoop,要么需要与Hadoop配套使用。我们的目标是,让读者不仅理解Hadoop是什么,还要理解如何在更宽泛的技术设施中使用Hadoop。

本书中提到的另一种技术是云计算的应用,尤其是AWS(Amazon Web Services,亚马逊网络服务)产品。本书中,我们将展示如何使用这些服务来承载Hadoop工作负载。这就意味着,读者无需购买任何物理硬件, 就能处理大规模数据。

本书内容

本书包括3个主要部分:第1~5章讲述了Hadoop的核心机制及Hadoop的工作模式;第6~7章涵盖了Hadoop更多可操作的内容;第8~11章介绍了Hadoop与其他产品和技术的组合使用。每章内容具体如下所。

第1章“绪论”。简要介绍了产生Hadoop和云计算的背景。如今看来,这些技术是如此重要。

第2章“安装并运行Hadoop”。指导读者完成本地Hadoop集群的安装,并运行一些示例作业。为了进行对比,在托管于亚马逊服务的Hadoop上执行同样的任务。

第3章“理解MapReduce”。深入研究Hadoop运行原理,揭示了MapReduce作业的执行方式,并展示了如何使用Java API编写MapReduce应用程序。

第4章“开发MapReduce程序”。通过对一个中等规模数据集案例的学习研究,演示如何着手处理和分析新数据源。

第5章“高级MapReduce技术”。介绍一些更复杂的应用MapRedece解决问题的方法,Hadoop似乎并不直接适用于这些问题。

第6章“故障处理”。详细检查Hadoop备受赞誉的高可用性和容错能力,通过强制结束进程和故意使用错误数据等方式故意制造破坏,以检验Hadoop在上述情况下的表现。

第7章“系统运行与维护”。从更具操作性的角度讲解Hadoop,这对于Hadoop集群的管理人员非常有用。本章在介绍一些最佳做法的同时,也描述了如何预防最糟糕的操作性灾难,因此系统管理员可以高枕无忧了。

第8章“Hive:数据的关系视图”。介绍Apache Hive,它允许使用类似SQL的语法对Hadoop数据进行查询。

第9章“与关系数据库协同工作”。探讨Hadoop如何与现有数据库融合,特别是如何将数据从一个数据库移到另一个数据库。

第10章“使用Flume收集数据”。介绍如何使用Apache Flume从多个数据源收集数据,并传送至Hadoop这样的目的地。

第11章“展望未来”。以更广泛的Hadoop生态系统概述结束全书,重点突出其他产品和技术的潜在价值。此外,还提供了一些如何参与Hadoop社区并获得帮助的方法。

准备工作

本书每章内容分别介绍该章用到的Hadoop相关软件包。但是,无论哪章内容都要用到运行Hadoop集群的硬件设施。

在最简单的情况下,一台基于Linux的主机可作为运行几乎全书所有示例的平台。任何可运行Linux命令行的先进操作系统都可满足需求,文中假设读者使用的是Ubuntu的最新发布版。

后面几章中的一些例子确实需要在多台机器上运行,所以读者需要拥有至少4台主机的访问权限。虚拟机也是可以的。虽然对于产品来讲,它们并非理想选择,但完全能够满足学习和研究的需要。

本书中,我们还将研究AWS,读者可以在EC2实例上运行所有示例。本书中,我们将更多地着眼于AWS针对Hadoop的具体用途。 任何人都可以使用AWS服务,但需要一张信用卡进行注册!

目标读者

我们认为,本书读者想要学习更多关于Hadoop的实践知识。本书的主要受众是,有软件开发经验却没有接触过Hadoop或类似大数据技术的人员。

对于那些想知道如何编写MapReduce应用的开发者,假设他们能轻松地编写Java程序并熟悉Unix命令行接口。本书还包含几个Ruby程序示例,但这些通常只是说明语言的独立性,并不要求读者成为一位Ruby专家。

对于架构师和系统管理员而言,本书也具有重大价值。它解释了Hadoop的工作原理,Hadoop在更广阔的系统架构中所处的位置,以及如何管理Hadoop集群。这类受众对一些复杂技术可能缺乏直接兴趣,如第4章第5章

约定

本书中,有几个经常出现的标题。

为了明确说明如何完成一个程序或任务,本书使用下面的格式详细描述操作步骤。

实践环节:标题

  1. 操作1
  2. 操作2
  3. 操作3

通常,需要一些额外的解释帮助读者理解这些指令,因此紧随其后的是是下面的原理分析。

原理分析

这部分内容对任务运行原理或刚完成的指令进行解释说明。

本书还包含一些其他的学习辅助标记,包括:

随堂测验:标题

这是一些简短的多选题,目的在于帮助读者测试对相关内容的理解是否正确。

一展身手:标题

这部分内容设置一些实际问题,并为读者提供一些验证所学内容的方法。

本书使用多种文字风格来区分不同种类的信息。下面是一些例子还有对其意义的解释。

代码块设置如下:你也许注意到,我们使用Unix命令rm而不是DOSdel命令移除Drush目录。

# * Fine Tuning
#
key_buffer = 16M 
key_buffer_size = 32M 
max_allowed_packet = 16M 
thread_stack = 512K 
thread_cache_size = 8 
max_connections = 300

如果代码块的特定部分需要特别关注,相应行或内容会加粗显示。

# * Fine Tuning
#
key_buffer = 16M 
key_buffer_size = 32M 
max_allowed_packet = 16M
thread_stack = 512K 
thread_cache_size = 8 
max_connections = 300

命令行的输入或输出会以如下形式显示。

cd /ProgramData/Propeople 
rm -r Drush
git clone --branch master http://git.drupal.org/project/drush.git

新词或者重要的词会以黑体字显示。以菜单或对话框为例,读者在屏幕上看到的内容如下所示“在Select Destination Location(选择目的地址)页面,点击Next(下一步)按钮接受默认输出地址”。

提示:警告或重要提示会出现在这样的方框里。

技巧:小窍门和技巧会以这样的形式出现。

读者反馈

我们非常欢迎来自读者的反馈。将你对本书的看法告诉我们,哪些内容是你喜欢的或哪些是你不喜欢的。读者反馈可以帮助我们不断提高书稿质量,这是非常重要的。

你只需向我们发送一封电子邮件,在邮件主题中提及书名即可反馈你的意见。我们的邮箱是:feedback@packtpub.com。

如果你擅长某个领域并对写作或者创作有兴趣,请参阅www.packtpub.com/authors上的作者指南。

客户支持

既然你购买了Packt的图书,我们将为你提供多种服务,使你本次购买物超所值。

下载示例代码

你可以通过http://www.packtpub.com网站的账号下载所购买Packt书籍的示例代码文件。或者登录网站http://www.packtpub.com/support进行注册,随后我们将通过电子邮件向你发送本书配套的示例代码文件。

勘误表

虽然作者尽最大努力保证本书内容的准确性,然而错误在所难免。如果你在Packt出版的书中发现了文字错误或是代码错误,衷心希望你能及时向我们反馈,并预致谢意。你的意见可以帮助我们改进图书的后续版本,并能帮助其他读者避免错误。请通过以下步骤提交你发现的错误之处:访问网站http://www.packtpub.com/submit-errata,选择相应图书,点击提交勘误表,登记你的勘误表详情。勘误表通过验证之后将上传到Packt网站,或添加到已有的勘误列表中。

关于盗版

互联网上的盗版问题由来已久,而且各种形式的媒介都存在这个问题。Packt出版社非常重视版权保护问题。如果你在互联网上看到了Packt图书的任何非法拷贝,无论它以何种形式存在,请立即向我们提供其位置或网站名称以便及时补救。

请通过邮箱copyright@packtpub.com与我们联系,并附上涉嫌盗版材料的链接。

你的帮助保障了Packt图书作者的权益,也让我们能持续提供高品质图书。

问题

如果你有关于本书任何方面的问题,可以通过questions@packtpub.com联系我们。我们将会尽力解决。

目录

  • 版权声明
  • 前言
  • 第1章 绪论
  • 第2章 安装并运行Hadoop
  • 第3章 理解MapReduce
  • 第4章 开发MapReduce程序
  • 第5章 高级MapReduce技术
  • 第6章 故障处理
  • 第7章 系统运行与维护
  • 第8章 Hive:数据的关系视图
  • 第9章 与关系数据库协同工作
  • 第10章 使用Flume收集数据
  • 第11章 展望未来
  • 随堂测验答案