前 言
Apache Hadoop是一类流行的大数据处理平台,并可与大多数大数据工具集成,以构建功能强大的数据分析方案。本书将围绕这一点对相关软件展开讨论,同时辅以大量的操作实例。
在本书阅读过程中,读者将会系统学习HDFS、MapReduce、YARN方面的知识,以及如何实现快速、高效的大数据处理方案。此外,本书还将Hadoop与其他开源工具集成,例如Python和R语言,进而分析和可视化数据,同时针对大数据进行统计计算。一旦读者掌握了这些内容,即可尝试在Apache Spark和Apache Flink的基础上应用Hadoop,最终实现实时数据分析和流式处理。除此之外,本书还将讨论如何在云端和端到端管道上利用Hadoop构建数据分析方案,并通过操作实例执行大数据分析任务。
在阅读完本书后,读者将具备基于Hadoop生态系统的分析能力,同时可构建强大的解决方案执行大数据分析,并拥有自己的技术观点。
适用读者
如果读者希望使用Hadoop 3的强大功能为企业或业务构建高性能的分析解决方案,或者您是一名大数据分析新手,那么本书将十分适合于您。另外,本书需要读者具备Java编程方面的基础知识。
本书内容
第1章将介绍Hadoop环境及其核心组件,包括HDFS和MapReduce。
第2章将讨论大型数据集的检测处理过程,从中发现数据的模式,生成相应的报告并采集有价值的内容。
第3章将讨论MapReduce,这也是大多数计算/处理系统中的基本概念。
第4章探讨Python语言,并在此基础上通过Hadoop对大数据进行分析。
第5章介绍了R语言,同时阐述了如何使用R语言并借助于Hadoop执行大数据统计计算。
第6章将考查Apache Spark,同时根据批处理模型使用Spark进行大数据分析。
第7章将对Apache Spark的流式处理模型进行分析,以及如何打造基于流式的实时分析应用程序。
第8章主要介绍Apache Flink,及其基于批处理模型的、针对大数据分析的应用方式。
第9章讨论DataStream API和基于Flink的流处理。其中,Flink用于接收和处理实时事件流,并在Hadoop集群中存储聚合和结果。
第10章考查数据可视化问题,并通过各种工具和技术实现这一功能,例如Tableau。
第11章讲述云计算以及各种概念,例如IaaS、PaaS和SaaS。除此之外,本章还将对云供应商加以简要介绍。
第12章介绍AWS和AWS中的各种服务,这些服务使用Elastic MapReduce(EMR)在AWS云中建立Hadoop集群,这对执行大数据分析非常有用。
软件和硬件环境
本书示例是在64位 Linux 上使用Scala、Java、R和Python语言实现的。另外,还应在机器上安装下列内容(建议使用最新版本):
? Spark 2.3.0(或更高版本)。
? Hadoop 3.1(或更高版本)。
? Flink 1.4。
? Java(JDK和JRE)1.8+。
? Scala 2.11.x(或更高版本)。
? Python 2.7+/3.4+。
? R 3.1+和RStudio 1.0.143。
? Eclipse Mars或Idea IntelliJ(最新版本)。
关于操作系统,最好使用Linux发行版(包括Debian、Ubuntu、Fedora、RHEL和CentOS)。具体来说,例如,对于Ubuntu,建议使用完整的14.04 (LTS) 64位安装、VMWare player 12或Virtual box。此外,还可在Windows(XP/7/8/10)或者macOS X(10.4.7+)上运行代码。
关于硬件配置,可采用Core i3、Core i5(推荐)~Core i7(获得最佳效果)。然而,多核处理将提供更快的数据处理以及较好的可伸缩性。另外,对于单系统模式,至少使用8GB RAM(推荐);单个VM至少使用32GB RAM;对于集群,则至少使用32GB RAM。足够的存储空间可运行繁重的任务(取决于将要处理的数据集大小),最好至少包含50GB的空闲磁盘存储空间(用于独立系统和SQL仓库)。
资源下载
读者可访问http://www.packtpub.com并通过个人账户下载示例代码文件。另外,http://www.packtpub.com/support,注册成功后,我们将以电子邮件的方式将相关文件发与读者。
读者可根据下列步骤下载代码文件:
(1)登录www.packtpub.com并注册我们的网站。
(2)选择SUPPORT选项卡。
(3)单击Code Downloads & Errata。
(4)在Search文本框中输入书名并执行后续命令。
当文件下载完毕后,确保使用下列最新版本软件解压文件夹:
? Windows系统下的WinRAR/7-Zip。
? Mac系统下的Zipeg/iZip/UnRarX。
? Linux系统下的7-Zip/PeaZip。
另外,读者还可访问GitHub获取本书的代码包,对应网址为https://github.com/ PacktPublishing/Big-Data-Analytics-with-Hadoop-3。代码与GitHub存储库将实现同步更新。
此外,读者还可访问https://github.com/PacktPublishing/以了解丰富的代码和视频资源。
除此之外,我们还提供了PDF文件,其中包含了本书所用截图/图表的彩色图像。读者访问http://www.packtpub.com/sites/default/files/downloads/BigDataAnalyticswithHadoop3_ ColorImages.pdf进行下载。
本书约定
代码块则通过下列方式设置:
hdfs dfs -copyFromLocal temperatures.csv /user/normal
代码中的重点内容则采用黑体表示:
Map-Reduce Framework -- output average temperature per city name
Map input records=35
Map output records=33
Map output bytes=208
Map output materialized bytes=286
命令行输入或输出如下所示:
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
图标表示较为重要的说明事项。
图标则表示提示信息和操作技巧。
读者反馈和客户支持
欢迎读者对本书的建议或意见予以反馈。
对此,读者可向feedback@packtpub.com发送邮件,并以书名作为邮件标题。若读者对本书有任何疑问,均可发送邮件至questions@packtpub.com,我们将竭诚为您服务。
勘误表
尽管我们在最大程度上做到尽善尽美,但错误依然在所难免。如果读者发现谬误之处,无论是文字错误抑或是代码错误,还望不吝赐教。对此,读者可访问http://www.packtpub. com/submit-errata,选取对应书籍,单击Errata Submission Form超链接,并输入相关问题的详细内容。
版权须知
一直以来,互联网上的版权问题从未间断,Packt出版社对此类问题异常重视。若读者在互联网上发现本书任意形式的副本,请告知网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送邮件至copyright@packtpub.com。
若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版工作,则可访问www.packtpub.com/authors。
问题解答
若读者对本书有任何疑问,均可发送邮件至questions@packtpub.com,我们将竭诚为您服务。