描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111622727
内容简介
本书重点关注Spark项目的基本知识,从Spark核心开始,然后拓展到各种Spark扩展、Spark相关项目、Spark子项目,以及Spark所处的丰富的生态系统里各种别的开源技术,比如Hadoop、Kafka、Cassandra等。
目 录
译者序
前言
引言
第一部分 Spark基础
第1章 大数据、Hadoop、Spark介绍 2
1.1 大数据、分布式计算、Hadoop简介 2
1.1.1 大数据与Hadoop简史 2
1.1.2 Hadoop简介 3
1.2 Spark简介 8
1.2.1 Spark背景 9
1.2.2 Spark的用途 9
1.2.3 Spark编程接口 9
1.2.4 Spark程序的提交类型 10
1.2.5 Spark应用程序的输入/输出类型 11
1.2.6 Spark中的RDD 11
1.2.7 Spark与Hadoop 11
1.3 Python函数式编程 12
1.3.1 Python函数式编程中的数据结构 12
1.3.2 Python对象序列化 15
1.3.3 Python函数式编程基础 17
1.4 本章小结 19
第2章 部署Spark 20
2.1 Spark部署模式 20
2.1.1 本地模式 21
2.1.2 Spark独立集群 21
2.1.3 基于YARN运行Spark 22
2.1.4 基于Mesos运行Spark 22
2.2 准备安装Spark 23
2.3 获取Spark 23
2.4 在Linux或Mac OS X上安装Spark 25
2.5 在Windows上安装Spark 26
2.6 探索Spark安装目录 28
2.7 部署多节点的Spark独立集群 29
2.8 在云上部署Spark 30
2.8.1 AWS 30
2.8.2 GCP 32
2.8.3 Databricks 32
2.9 本章小结 34
第3章 理解Spark集群架构 35
3.1 Spark应用中的术语 35
3.1.1 Spark驱动器 36
3.1.2 Spark工作节点与执行器 38
3.1.3 Spark主进程与集群管理器 40
3.2 使用独立集群的Spark应用 41
3.3 在YARN上运行Spark应用 42
3.3.1 ResourceManager作为集群管理器 42
3.3.2 ApplicationMaster作为Spark主进程 42
3.4 在YARN上运行Spark应用的部署模式 42
3.4.1 客户端模式 42
3.4.2 集群模式 43
3.4.3 回顾本地模式 45
3.5 本章小结 45
第4章 Spark编程基础 46
4.1 RDD简介 46
4.2 加载数据到RDD 48
4.2.1 从文件创建RDD 48
4.2.2 从文本文件创建RDD 49
4.2.3 从对象文件创建RDD 52
4.2.4 从数据源创建RDD 52
4.2.5 从JSON文件创建RDD 54
4.2.6 通过编程创建RDD 56
4.3 RDD操作 57
4.3.1 RDD核心概念 57
4.3.2 基本的RDD转化操作 61
4.3.3 基本的RDD行动操作 65
4.3.4 键值对RDD的转化操作 69
4.3.5 MapReduce与单词计数练习 75
4.3.6 连接操作 78
4.3.7 在Spark中连接数据集 82
4.3.8 集合操作 85
4.3.9 数值型RDD的操作 87
4.4 本章小结 89
第二部分 基础拓展
第5章 Spark核心API高级编程 92
5.1 Spark中的共享变量 92
5.1.1 广播变量 92
5.1.2 累加器 96
5.1.3 练习:使用广播变量和累加器 99
5.2 Spark中的数据分区 100
5.2.1 分区概述 100
5.2.2 掌控分区 101
5.2.3 重分区函数 102
5.2.4 针对分区的API方法 104
5.3 RDD的存储选项 106
5.3.1 回顾RDD谱系 106
5.3.2 RDD存储选项 107
5.3.3 RDD缓存 109
5.3.4 持久化RDD 109
5.3.5 选择何时持久化或缓存RDD 112
5.3.6 保存RDD检查点 112
5.3.7 练习:保存RDD检查点 114
5.4 使用外部程序处理RDD 115
5.5 使用Spark进行数据采样 117
5.6 理解Spark应用与集群配置 118
5.6.1 Spark环境变量 118
5.6.2 Spark配置属性 121
5.7 Spark优化 124
5.7.1 早过滤,勤过滤 124
5.7.2 优化满足结合律的操作 124
5.7.3 理解函数和闭包的影响 126
5.7.4 收集数据的注意事项 127
5.7.5 使用配置参数调节和优化应用 127
5.7.6 避免低效的分区 128
5.7.7 应用性能问题诊断 130
5.8 本章小结 133
第6章 使用Spark进行SQL与NoSQL编程 134
6.1 Spark SQL简介 134
6.1.1 Hive简介 134
6.1.2 Spark SQL架构 138
6.1.3 DataFrame入门 141
6.1.4 使用DataFrame 150
6.1.5 DataFrame缓存、持久化与重新分区 157
6.1.6 保存DataFrame输出 158
6.1.7 访问Spark SQL 161
6.1.8 练习:使用Spark SQL 163
6.2 在Spark中使用NoSQL系统 165
6.2.1 NoSQL简介 165
6.2.2 在Spark中使用HBase 166
6.2.3 练习:在Spark中使用HBase 169
6.2.4 在Spark中使用Cassandra 170
6.2.5 在Spark中使用DynamoDB 172
6.2.6 其他NoSQL平台 174
6.3 本章小结 174
第7章 使用Spark处理流数据与消息 175
7.1 Spark Streaming简介 175
7.1.1 Spark Streaming架构 176
7.1.2 DStream简介 177
7.1.3 练习:Spark Streaming入门 183
7.1.4 状态操作 184
7.1.5 滑动窗口操作 185
7.2 结构化流处理 188
7.2.1 结构化流处理数据源 188
7.2.2 结构化流处理的数据输出池 189
7.2.3 输出模式 190
7.2.4 结构化流处理操作 190
7.3 在Spark中使用消息系统 192
7.3.1 Apache Kafka 192
7.3.2 KafkaUtils 195
7.3.3 练习:在Spark中使用Kafka 196
7.3.4 亚马逊Kinesis 199
7.4 本章小结 203
第8章 Spark数据科学与机器学习简介 204
8.1 Spark与R语言 204
8.1.1 R语言简介 204
8.1.2 通过R语言使用Spark 210
8.1.3 练习:在RStudio中使用SparkR 215
8.
前言
引言
第一部分 Spark基础
第1章 大数据、Hadoop、Spark介绍 2
1.1 大数据、分布式计算、Hadoop简介 2
1.1.1 大数据与Hadoop简史 2
1.1.2 Hadoop简介 3
1.2 Spark简介 8
1.2.1 Spark背景 9
1.2.2 Spark的用途 9
1.2.3 Spark编程接口 9
1.2.4 Spark程序的提交类型 10
1.2.5 Spark应用程序的输入/输出类型 11
1.2.6 Spark中的RDD 11
1.2.7 Spark与Hadoop 11
1.3 Python函数式编程 12
1.3.1 Python函数式编程中的数据结构 12
1.3.2 Python对象序列化 15
1.3.3 Python函数式编程基础 17
1.4 本章小结 19
第2章 部署Spark 20
2.1 Spark部署模式 20
2.1.1 本地模式 21
2.1.2 Spark独立集群 21
2.1.3 基于YARN运行Spark 22
2.1.4 基于Mesos运行Spark 22
2.2 准备安装Spark 23
2.3 获取Spark 23
2.4 在Linux或Mac OS X上安装Spark 25
2.5 在Windows上安装Spark 26
2.6 探索Spark安装目录 28
2.7 部署多节点的Spark独立集群 29
2.8 在云上部署Spark 30
2.8.1 AWS 30
2.8.2 GCP 32
2.8.3 Databricks 32
2.9 本章小结 34
第3章 理解Spark集群架构 35
3.1 Spark应用中的术语 35
3.1.1 Spark驱动器 36
3.1.2 Spark工作节点与执行器 38
3.1.3 Spark主进程与集群管理器 40
3.2 使用独立集群的Spark应用 41
3.3 在YARN上运行Spark应用 42
3.3.1 ResourceManager作为集群管理器 42
3.3.2 ApplicationMaster作为Spark主进程 42
3.4 在YARN上运行Spark应用的部署模式 42
3.4.1 客户端模式 42
3.4.2 集群模式 43
3.4.3 回顾本地模式 45
3.5 本章小结 45
第4章 Spark编程基础 46
4.1 RDD简介 46
4.2 加载数据到RDD 48
4.2.1 从文件创建RDD 48
4.2.2 从文本文件创建RDD 49
4.2.3 从对象文件创建RDD 52
4.2.4 从数据源创建RDD 52
4.2.5 从JSON文件创建RDD 54
4.2.6 通过编程创建RDD 56
4.3 RDD操作 57
4.3.1 RDD核心概念 57
4.3.2 基本的RDD转化操作 61
4.3.3 基本的RDD行动操作 65
4.3.4 键值对RDD的转化操作 69
4.3.5 MapReduce与单词计数练习 75
4.3.6 连接操作 78
4.3.7 在Spark中连接数据集 82
4.3.8 集合操作 85
4.3.9 数值型RDD的操作 87
4.4 本章小结 89
第二部分 基础拓展
第5章 Spark核心API高级编程 92
5.1 Spark中的共享变量 92
5.1.1 广播变量 92
5.1.2 累加器 96
5.1.3 练习:使用广播变量和累加器 99
5.2 Spark中的数据分区 100
5.2.1 分区概述 100
5.2.2 掌控分区 101
5.2.3 重分区函数 102
5.2.4 针对分区的API方法 104
5.3 RDD的存储选项 106
5.3.1 回顾RDD谱系 106
5.3.2 RDD存储选项 107
5.3.3 RDD缓存 109
5.3.4 持久化RDD 109
5.3.5 选择何时持久化或缓存RDD 112
5.3.6 保存RDD检查点 112
5.3.7 练习:保存RDD检查点 114
5.4 使用外部程序处理RDD 115
5.5 使用Spark进行数据采样 117
5.6 理解Spark应用与集群配置 118
5.6.1 Spark环境变量 118
5.6.2 Spark配置属性 121
5.7 Spark优化 124
5.7.1 早过滤,勤过滤 124
5.7.2 优化满足结合律的操作 124
5.7.3 理解函数和闭包的影响 126
5.7.4 收集数据的注意事项 127
5.7.5 使用配置参数调节和优化应用 127
5.7.6 避免低效的分区 128
5.7.7 应用性能问题诊断 130
5.8 本章小结 133
第6章 使用Spark进行SQL与NoSQL编程 134
6.1 Spark SQL简介 134
6.1.1 Hive简介 134
6.1.2 Spark SQL架构 138
6.1.3 DataFrame入门 141
6.1.4 使用DataFrame 150
6.1.5 DataFrame缓存、持久化与重新分区 157
6.1.6 保存DataFrame输出 158
6.1.7 访问Spark SQL 161
6.1.8 练习:使用Spark SQL 163
6.2 在Spark中使用NoSQL系统 165
6.2.1 NoSQL简介 165
6.2.2 在Spark中使用HBase 166
6.2.3 练习:在Spark中使用HBase 169
6.2.4 在Spark中使用Cassandra 170
6.2.5 在Spark中使用DynamoDB 172
6.2.6 其他NoSQL平台 174
6.3 本章小结 174
第7章 使用Spark处理流数据与消息 175
7.1 Spark Streaming简介 175
7.1.1 Spark Streaming架构 176
7.1.2 DStream简介 177
7.1.3 练习:Spark Streaming入门 183
7.1.4 状态操作 184
7.1.5 滑动窗口操作 185
7.2 结构化流处理 188
7.2.1 结构化流处理数据源 188
7.2.2 结构化流处理的数据输出池 189
7.2.3 输出模式 190
7.2.4 结构化流处理操作 190
7.3 在Spark中使用消息系统 192
7.3.1 Apache Kafka 192
7.3.2 KafkaUtils 195
7.3.3 练习:在Spark中使用Kafka 196
7.3.4 亚马逊Kinesis 199
7.4 本章小结 203
第8章 Spark数据科学与机器学习简介 204
8.1 Spark与R语言 204
8.1.1 R语言简介 204
8.1.2 通过R语言使用Spark 210
8.1.3 练习:在RStudio中使用SparkR 215
8.
前 言
Spark在这场由大数据与开源软件掀起的颠覆性革命中处于核心位置。不论是尝试Spark的意向还是实际用例的数量都在以几何级数增长,而且毫无衰退的迹象。本书将手把手引导你在大数据分析领域中收获事业上的成功。
本书重点
本书重点关注Spark项目的基本知识,从Spark核心技术开始,然后拓展到各种Spark扩展技术、Spark相关项目及子项目,以及Spark所处的丰富的生态系统里各种别的开源技术,比如Hadoop、Kafka、Cassandra等。
本书所介绍的Spark基本概念(包括运行环境、集群架构、应用架构等)与编程语言无关且非常基础,而大多数示例程序和练习是用Python实现的。Spark的Python API(PySpark)为数据分析师、数据工程师、数据科学家等提供了易用的编程环境,让开发者能在获得Python语言的灵活性和可扩展性的同时,获得Spark的分布式处理能力和伸缩性。
本书所涉及的范围非常广泛,涵盖了从基本的Spark核心编程到Spark SQL、Spark Streaming、机器学习等方方面面的内容。本书对于每个主题都给出了良好的介绍和概览,足以让你以Spark项目为基础构建出针对任何特定领域或学科的平台。
目标读者
本书是为有志进入大数据领域或已经入门想要进一步巩固大数据领域知识的数据分析师和工程师而写的。当前市场非常需要具备大数据技能、懂得大数据领域优秀处理框架Spark的工程师。本书的目标是针对这一不断增长的市场需求培训读者,使得读者获得雇主急需的技能。
对于阅读本书来说,有Python使用经验是有帮助的,没有的话也没关系,毕竟Python对于任何有编程经验的人来说都非常直观易懂。读者最好对数据分析和数据处理有一定了解。这本书尤其适合有兴趣进入大数据领域的数据仓库技术人员阅读。
如何使用本书
本书分为两大部分共8章。第一部分“Spark基础”包括4章,会使读者深刻理解Spark是什么,如何部署Spark,如何使用Spark进行基本的数据处理操作。
第1章概要介绍大数据生态圈,包括Spark项目的起源和演进过程。讨论Spark项目的关键属性,包括Spark是什么,用起来如何,以及Spark与Hadoop项目之间的关系。
第2章展示如何部署一个Spark集群,包括Spark集群的各种部署模式,以及调用Spark的各种方法。
第3章讨论Spark集群和应用是如何运作的,让读者深刻理解Spark是如何工作的。
第4章介绍使用弹性分布式数据集(RDD)进行Spark初级编程的基础知识。
第二部分“基础拓展”包括后4章的内容,扩展到Spark的core模块以外,包括SQL和NoSQL系统、流处理应用、数据科学与机器学习中Spark的使用。
第5章讲解用来扩展、加速和优化常规Spark例程的高级元件,包括各种共享变量和RDD存储,以及分区的概念及其实现。
第6章讨论Spark与SQL的整合,还有Spark与非关系型数据库的整合。
第7章介绍Spark的Streaming子项目,以及Streaming中最基本的DStream对象。该章还涵盖Spark对于Apache Kafka这样的常用消息系统的使用。
第8章介绍通过R语言使用Spark建立预测模型,以及Spark中用来实现机器学习的子项目MLlib。
本书代码
本书中各个练习的示例数据和源代码可以从http://sparkusingpython.com下载。也可以从https://github.com/sparktraining/spark_using_python查看或者下载。
本书重点
本书重点关注Spark项目的基本知识,从Spark核心技术开始,然后拓展到各种Spark扩展技术、Spark相关项目及子项目,以及Spark所处的丰富的生态系统里各种别的开源技术,比如Hadoop、Kafka、Cassandra等。
本书所介绍的Spark基本概念(包括运行环境、集群架构、应用架构等)与编程语言无关且非常基础,而大多数示例程序和练习是用Python实现的。Spark的Python API(PySpark)为数据分析师、数据工程师、数据科学家等提供了易用的编程环境,让开发者能在获得Python语言的灵活性和可扩展性的同时,获得Spark的分布式处理能力和伸缩性。
本书所涉及的范围非常广泛,涵盖了从基本的Spark核心编程到Spark SQL、Spark Streaming、机器学习等方方面面的内容。本书对于每个主题都给出了良好的介绍和概览,足以让你以Spark项目为基础构建出针对任何特定领域或学科的平台。
目标读者
本书是为有志进入大数据领域或已经入门想要进一步巩固大数据领域知识的数据分析师和工程师而写的。当前市场非常需要具备大数据技能、懂得大数据领域优秀处理框架Spark的工程师。本书的目标是针对这一不断增长的市场需求培训读者,使得读者获得雇主急需的技能。
对于阅读本书来说,有Python使用经验是有帮助的,没有的话也没关系,毕竟Python对于任何有编程经验的人来说都非常直观易懂。读者最好对数据分析和数据处理有一定了解。这本书尤其适合有兴趣进入大数据领域的数据仓库技术人员阅读。
如何使用本书
本书分为两大部分共8章。第一部分“Spark基础”包括4章,会使读者深刻理解Spark是什么,如何部署Spark,如何使用Spark进行基本的数据处理操作。
第1章概要介绍大数据生态圈,包括Spark项目的起源和演进过程。讨论Spark项目的关键属性,包括Spark是什么,用起来如何,以及Spark与Hadoop项目之间的关系。
第2章展示如何部署一个Spark集群,包括Spark集群的各种部署模式,以及调用Spark的各种方法。
第3章讨论Spark集群和应用是如何运作的,让读者深刻理解Spark是如何工作的。
第4章介绍使用弹性分布式数据集(RDD)进行Spark初级编程的基础知识。
第二部分“基础拓展”包括后4章的内容,扩展到Spark的core模块以外,包括SQL和NoSQL系统、流处理应用、数据科学与机器学习中Spark的使用。
第5章讲解用来扩展、加速和优化常规Spark例程的高级元件,包括各种共享变量和RDD存储,以及分区的概念及其实现。
第6章讨论Spark与SQL的整合,还有Spark与非关系型数据库的整合。
第7章介绍Spark的Streaming子项目,以及Streaming中最基本的DStream对象。该章还涵盖Spark对于Apache Kafka这样的常用消息系统的使用。
第8章介绍通过R语言使用Spark建立预测模型,以及Spark中用来实现机器学习的子项目MLlib。
本书代码
本书中各个练习的示例数据和源代码可以从http://sparkusingpython.com下载。也可以从https://github.com/sparktraining/spark_using_python查看或者下载。
评论
还没有评论。