基本信息
- 原书名:Big Data Analytics

内容简介
目录
前言
第1章 从宏观视角看大数据分析 1
1.1 大数据分析以及 Hadoop 和 Spark 在其中承担的角色 3
1.1.1 典型大数据分析项目的生命周期 4
1.1.2 Hadoop和Spark承担的角色 6
1.2 大数据科学以及Hadoop和Spark在其中承担的角色 6
1.2.1 从数据分析到数据科学的根本性转变 6
1.2.2 典型数据科学项目的生命周期 8
1.2.3 Hadoop和Spark 承担的角色 9
1.3 工具和技术 9
1.4 实际环境中的用例 11
1.5 小结 12
第2章 Apache Hadoop和Apache Spark入门 13
2.1 Apache Hadoop概述 13
2.1.1 Hadoop 分布式文件系统 14
2.1.2 HDFS 的特性 15
2.1.3 MapReduce 16
2.1.4 MapReduce 的特性 17
2.1.5 MapReduce v1与MapReduce v2对比 17
译者序
本书比较系统地讲解了利用Hadoop和Spark及其生态系统里的一系列工具进行大数据分析的方法,并配套了详细的示例,是一本比较实用的参考书。
大家可以按照本书的内容循序渐进地学习。本书的难度并不大,绝大部分内容都配有详细的说明和实践步骤。偶尔需要补充一些背景知识,我会尽力用译者注的形式进行说明,希望对读者能有所帮助。
我们可以看到,Hadoop 和 Spark 实际上并不是相互竞争的关系,二者可以搭配使用,相互补充,为大数据分析人员提供一个全面和统一的技术框架,使之能够专注于业务需求,而无须在技术实现层面花费太多精力。
本书的定位主要是在大数据技术平台的搭建和配置方面。虽然原书书名是《Big Data Analytics》,但本书的核心内容是大数据分析的基础架构及实施方法,而不是大数据的分析方法,比如书中对于示例中用到的机器学习模型只有比较简略的讲解。
从这个角度来说,本书比较适合大数据分析的技术支持人员,以及对机器学习算法和模型已有一定造诣,希望学习利用最新的技术平台进行分析的独立研究者。
如果读者对机器学习的算法和模型感兴趣,可以参考我之前翻译的《预测分析:R语言实现》(书号是:978-7-111-55354-0),该书比较深入地讲解了机器学习常用的一些模型,并且有详细的示例帮助读者进行练习。
和以往一样,我在 GitHub 上为本书开通了一个讨论区,网址是 https://github.com/coderLMN/BigDataAnalytics/issues。如果读者在阅读中遇到问题或错误,欢迎来这里提出,更欢迎参与讨论。谢谢!
根据我之前的经验,这样的讨论区对于不少读者来说是很实用的。他们不仅能提出问题、参与讨论,也可以提出自己的观点和实现方法,让自己、译者、其他读者都能从中获益。
在此我要感谢贾立恒等读者在讨论中给我带来的启发。另外,他们在学习过程中表现出来的认真和严谨对我也是一种无声的督促,让我在翻译的过程中不敢懈怠,时刻提醒自己要对翻译出来的文字负责。
最后,我要感谢我的家人,他们对我的翻译工作给予了极大的耐心和理解,让我能专心地从事这项我热爱的工作。
吴今朝
前言
大数据分析行业正在从 MapReduce 转向Spark。因此,本书深入讨论了 Spark 相比 MapReduce 的优势,从而揭示出它在内存计算速度方面的好处。我们还会讲解如何运用 DataFrame API、Data Sources API,以及新的 Dataset API 来构建大数据分析应用程序。书中还讲解了如何使用 Spark Streaming 配合 Apache Kafka 和 HBase 进行实时数据分析,以帮助构建流式应用程序(streaming application)。新的结构化流(Structured Streaming)概念会通过物联网(Internet of Things,IOT)用例来解释。在本书中,机器学习技术会使用 MLLib、机器学习流水线和 SparkR 来实现;图分析则会利用Spark的GraphX 和GraphFrames 组件包来进行。
本书还介绍了基于Web的笔记本(如Jupyter和Apache Zeppelin)和数据流工具Apache NiFi,它们用于分析和可视化数据,以及利用 Livy 服务器把Spark作为一个服务提供给用户。
本书包含的内容
第 1 章从宏观的角度讲解了大数据分析的概念,并介绍了在Apache Hadoop和Apache Spark平台上使用的工具和技术,以及一些最常见的用例。
第 2 章介绍了 Hadoop 和 Spark 平台的基础知识。该章还讲解了Spark与MapReduce 有何不同,以及Hadoop平台上的Spark有哪些优点。随后介绍如何安装集群,以及如何设置分析所需的工具。
第 3 章介绍了 Spark 的更深层概念,例如 Spark Core 内部结构、如何使用键值对RDD、Spark程序的生命周期、如何构建Spark应用程序、如何持久化和缓存 RDD,以及如何使用 Spark 资源管理器(Standalone、Yarn 和 Mesos)。
第 4 章涵盖了Data Sources API、DataFrames API 和新的 Dataset API。本章会特别重点地讲解 DataFrame API 的用途,以及如何对具有内置数据源(CSV、Json、Parquet、ORC、JDBC 和 Hive)和外部数据源(如Avro、Xml 和 Pandas)的 DataFrame API 进行分析。Spark-on-HBase 连接器部分解释了如何使用 DataFrame 分析 Spark 中的 HBase 数据。该章还讲解了如何使用 Spark SQL 作为分布式 SQL 引擎。
第 5 章讲解了实时分析的含义,以及 Spark Streaming 与 Storm、trident、Flink 和 Samza 等其他实时引擎的不同之处。其中描述了具有输入数据源和输出存储的 Spark Streaming 的架构,涵盖无状态和有状态的流处理,以及使用基于接收器的方法和直接方法,把 Kafka 作为数据源,把 HBase 作为存储。该章还讲解了应用程序在驱动进程(Driver)或执行进程(Executor)出现故障的情况下,有关 Spark 流的容错概念。结构化流(Structured Streaming)的概念会通过一个物联网(IOT)的用例来解释。
第 6 章用 Jupyter、Zeppelin 和 Hue 等工具介绍了基于 Web 的笔记本。该章还介绍了 Livy REST 服务器,它用于把 Spark 构建为服务,并在多个用户之间共享 Spark RDD。该章还介绍了 Apache NiFi,它可以利用 Spark 和 Hadoop 构建数据流。
第 7 章旨在更深入地讲解利用 Spark 和 Hadoop 来实现数据科学中用到的机器学习技术。该章介绍了 Spark 使用的机器学习算法,包括垃圾邮件的检测、实现和构建机器学习流水线(machine learning pipeline)的方法,还讲解了使用 H2O 和 Hivemall 实现机器学习的方法。
第 8 章详细介绍了协同过滤技术,并解释了如何使用 Spark 和 Mahout 构建实时推荐引擎。
第 9 章介绍了图处理、GraphX 与 Giraph 的区别,以及 GraphX 的各种图运算,如创建图、计数、过滤、度、三元组、修改、连接、属性变换、顶点 RDD 和 边 RDD 运算等。它还通过一个航班分析用例讲解了 GraphX 算法,如三角计数和连通分量。该章还介绍了基于 DataFrame 的新 GraphFrames 组件,用来解释模式发现(motif finding)这样的一些概念。
第 10 章讲解了 R 语言和 SparkR 之间的差异,以及如何开始通过 shell 脚本在 local、standalone 和 Yarn 模式下使用 SparkR 。该章还介绍了如何把 SparkR 与 RStudio、DataFrame、机器学习算法,以及 Apache Zeppelin 配套使用。
学习本书所需的资源
为了方便入门,本书中的实践练习会在 Cloudera、Hortonworks、MapR 或预构建的 Spark for Hadoop 的虚拟机(VM)上演示。同样的练习也可以在更大的集群上运行。
在你的笔记本电脑上使用虚拟机的必要条件有:
内存:8 GB 及以上
CPU:至少 2 个虚拟 CPU
必须为 Windows 或 Linux 操作系统安装最新版本的 VMWare player 或 Oracle VirtualBox