简介
本书共分为四大部分:基础篇(1~10章)介绍了Spark的用途、扩展、安装、运行模式、程序开发、编程模型、工作原理,以及SparkSQL、SparkStreaming、MLlib、GraphX、Bagel等重要的扩展;实战篇(11~14)讲解了搜索结果的排序、个性化推荐系统、日志分析系统、自然语言处理、数据挖掘等方面的案例;高级篇(15~18)则讲解了Spark的调度管理、存储管理、监控管理、性能优化、**实践以及重点算法的解读;扩展篇(19~20)讲解了Sparkjob-server和Tachyon。
目录
Contents?目 录
前 言
基 础 篇
第1章 Spark简介 2
1.1 什么是Spark 2
1.1.1 概述 3
1.1.2 Spark大数据处理框架 3
1.1.3 Spark的特点 4
1.1.4 Spark应用场景 5
1.2 Spark的重要扩展 6
1.2.1 Spark SQL和DataFrame 6
1.2.2 Spark Streaming 7
1.2.3 Spark MLlib和ML 8
1.2.4 GraphX 8
1.2.5 SparkR 9
1.3 本章小结 10
第2章 Spark部署和运行 11
2.1 部署准备 11
2.1.1 下载Spark 11
2.1.2 编译Spark版本 12
2.1.3 集群部署概述 14
2.2 Spark部署 15
2.2.1 Local模式部署 16
2.2.2 Standalone模式部署 16
2.2.3 YARN模式部署 18
2.3 运行Spark应用程序 19
2.3.1 Local模式运行Spark应用程序 19
2.3.2 Standalone模式运行Spark应用程序 20
2.3.3 YARN模式运行Spark 22
2.3.4 应用程序提交和参数传递 23
2.4 本章小结 26
第3章 Spark程序开发 27
3.1 使用Spark Shell编写程序 27
3.1.1 启动Spark Shell 28
3.1.2 加载text文件 28
3.1.3 简单RDD操作 28
3.1.4 简单RDD操作应用 29
3.1.5 RDD缓存 30
3.2 构建Spark的开发环境 30
3.2.1 准备环境 30
3.2.2 构建Spark的Eclipse开发环境 31
3.2.3 构建Spark的IntelliJ IDEA开发环境 32
3.3 独立应用程序编程 40
3.3.1 创建SparkContext对象 40
3.3.2 编写简单应用程序 40
3.3.3 编译并提交应用程序 40
3.4 本章小结 43
第4章 编程模型 44
4.1 RDD介绍 44
4.1.1 RDD特征 45
4.1.2 RDD依赖 45
4.2 创建RDD 47
4.2.1 集合(数组)创建RDD 47
4.2.2 存储创建RDD 48
4.3 RDD操作 49
4.3.1 转换操作 50
4.3.2 执行操作 52
4.3.3 控制操作 54
4.4 共享变量 56
4.4.1 广播变量 57
4.4.2 累加器 57
4.5 本章小结 58
第5章 作业执行解析 59
5.1 基本概念 59
5.1.1 Spark组件 59
5.1.2 RDD视图 60
5.1.3 DAG图 61
5.2 作业执行流程 62
5.2.1 基于Standalone模式的Spark架构 62
5.2.2 基于YARN模式的Spark架构 64
5.2.3 作业事件流和调度分析 65
5.3 运行时环境 67
5.3.1 构建应用程序运行时环境 68
5.3.2 应用程序转换成DAG 68
5.3.3 调度执行DAG图 70
5.4 应用程序运行实例 71
5.5 本章小结 72
第6章 Spark SQL与DataFrame 73
6.1 概述 73
6.1.1 Spark SQL 发展 74
6.1.2 Spark SQL 架构 74
6.1.3 Spark SQL 特点 76
6.1.4 Spark SQL 性能 76
6.2 DataFrame 77
6.2.1 DataFrame和RDD的区别 78
6.2.2 创建DataFrame 78
6.2.3 DataFrame 操作 80
6.2.4 RDD转化为DataFrame 82
6.3 数据源 84
6.3.1 加载保存操作 84
6.3.2 Parquet 文件 85
6.3.3 JSON 数据集 88
6.3.4 Hive 表 89
6.3.5 通过JDBC 连接数据库 91
6.3.6 多数据源整合查询的小例子 92
6.4 分布式的SQL Engine 93
6.4.1 运行Thrift JDBC/ODBC 服务 93
6.4.2 运行 Spark SQL CLI 94
6.5 性能调优 94
6.5.1 缓存数据 94
6.5.2 调优参数 94
6.5.3 增加并行度 95
6.6 数据类型 95
6.7 本章小结 96
第7章 深入了解Spark Streaming 97
7.1 基础知识 97
7.1.1 Spark Streaming工作原理 98
7.1.2 DStream编程模型 99
7.2 DStream操作 100
7.2.1 Input DStream 100
7.2.2 DStream转换操作 102
7.2.3 DStream状态操作 104
7.2.4 DStream输出操作 106
7.2.5 缓存及持久化 107
7.2.6 检查点 108
7.3 性能调优 109
7.3.1 优化运行时间 109
7.3.2 设置合适的批次大小 111
7.3.3 优化内存使用 111
7.4 容错处理 112
7.4.1 文件输入源 112
7.4.2 基于Receiver的输入源 112
7.4.3 输出操作 113
7.5 一个例子 113
7.6 本章小结 115
第8章 Spark MLlib与机器学习 116
8.1 机器学习概述 116
8.1.1 机器学习分类 117
8.1.2 机器学习算法 117
8.2 Spark MLlib介绍 118
8.3 Spark MLlib库 119
8.3.1 MLlib数据类型 120
8.3.2 MLlib的算法库与实例 123
8.4 ML库 142
8.4.1 主要概念 143
8.4.2 算法库与实例 145
8.5 本章小结 147
第9章 GraphX图计算框架与应用 148
9.1 概述 148
9.2 Spark GraphX架构 149
9.3 GraphX编程 150
9.3.1 GraphX的图操作 152
9.3.2 常用图算法 161
9.4 应用场景 164
9.4.1 图谱体检平台 164
9.4.2 多图合并工具 165
9.4.3 能量传播模型 165
9.5 本章小结 166
第10章 SparkR(R on Spark) 167
10.1 概述 167
10.1.1 SparkR介绍 168
10.1.2 SparkR的工作原理 168
10.1.3 R语言介绍 169
10.1.4 R语言与其他语言的通信 170
10.2 安装SparkR 170
10.2.1 安装R语言与rJava 171
10.2.2 SparkR的安装 171
10.3 SparkR的运行与应用示例 172
10.3.1 运行SparkR 172
10.3.2 SparkR示例程序 173
10.3.3 R的DataFrame操作方法 175
10.3.4 SparkR的DataFrame 183
10.4 本章小结 186
实 战 篇
第11章 大数据分析系统 188
11.1 背景 188
11.2 数据格式 189
11.3 应用架构 189
11.4 业务实现 190
11.4.1 流量、性能的实时分析 190
11.4.2 流量、性能的统计分析 192
11.4.3 业务关联分析 193
11.4.4 离线报表分析 195
11.5 本章小结 199
第12章 系统资源分析平台 200
12.1 业务背景 200
12.1.1 业务介绍 201
12.1.2 实现目标 201
12.2 应用架构 201
12.2.1 总体架构 202
12.2.2 模块架构 202
12.3 代码实现 203
12.3.1 Kafka集群 203
12.3.2 数据采集 207
12.3.3 离线数据处理 207
12.3.4 数据表现 207
12.4 结果验证 213
12.5 本章小结 214
第13章 在Spark上训练LR模型 215
13.1 逻辑回归简介 215
13.2 数据格式 216
13.3 MLlib中LR模型源码介绍 217
13.3.1 逻辑回归分类器 217
13.3.2 优化方法 219
13.3.3 算法效果评估 221
13.4 实现案例 223
13.4.1 训练模型 223
13.4.2 计算AUC 223
13.5 本章小结 224
第14章 获取二级邻居关系图 225
14.1 理解PageRank 225
14.1.1 初步理解PageRank 225
14.1.2 深入理解PageRank 227
14.2 PageRank算法基于Spark的实现 228
14.3 基于PageRank的二级邻居获取 232
14.3.1 系统设计 232
14.3.2 系统实现 232
14.3.3 代码提交命令 235
14.4 本章小结 236
高 级 篇
第15章 调度管理 238
15.1 调度概述 238
15.1.1 应用程序间的调度 239
15.1.2 应用程序中的调度 241
15.2 调度器 242
15.2.1 调度池 243
15.2.2 Job调度流程 243
15.2.3 调度模块 245
15.2.4 Job的生与死 249
15.3 本章小结 253
第16章 存储管理 254
16.1 硬件环境 254
16.1.1 存储系统 254
16.1.2 本地磁盘 255
16.1.3 内存 255
16.1.4 网络和CPU 255
16.2 Storage模块 256
16.2.1 通信层 256
16.2.2 存储层 258
16.3 Shuff?le数据持久化 261
16.4 本章小结 263
第17章 监控管理 264
17.1 Web界面 264
17.2 Spark UI历史监控 266
17.2.1 使用spark-server的原因 266
17.2.2 配置spark-server 266
17.3 监控工具 269
17.3.1 Metrics工具 269
17.3.2 其他工具 271
17.4 本章小结 272
第18章 性能调优 273
18.1 文件的优化 273
18.1.1 输入采用大文件 273
18.1.2 lzo压缩处理 274
18.1.3 Cache压缩 275
18.2 序列化数据 277
18.3 缓存 278
18.4 共享变量 278
18.4.1 广播变量 279
18.4.2 累加器 279
18.5 流水线优化 280
18.6 本章小结 280
扩 展 篇
第19章 Spark-jobserver实践 282
19.1 Spark-jobserver是什么 282
19.2 编译、部署及体验 283
19.2.1 编译及部署 283
19.2.2 体验 286
19.3 Spark-jobserver程序实战 288
19.3.1 创建步骤 288
19.3.2 一些常见的问题 289
19.4 使用场景:用户属性分布计算 289
19.4.1 项目需求 290
19.4.2 计算架构 290
19.4.3 使用NamedRDD 291
19.5 本章小结 291
第20章 Spark Tachyon实战 292
20.1 Tachyon文件系统 292
20.1.1 文件系统概述 293
20.1.2 HDFS和Tachyon 294
20.1.3 Tachyon设计原理 294
20.1.4 Tachyon特性 295
20.2 Tachyon入门 295
20.2.1 Tachyon 部署 295
20.2.2 Tachyon API 297
20.2.3 在Spark上使用Tachyon 298
20.3 容错机制 299
20.4 本章小结 300
前 言
基 础 篇
第1章 Spark简介 2
1.1 什么是Spark 2
1.1.1 概述 3
1.1.2 Spark大数据处理框架 3
1.1.3 Spark的特点 4
1.1.4 Spark应用场景 5
1.2 Spark的重要扩展 6
1.2.1 Spark SQL和DataFrame 6
1.2.2 Spark Streaming 7
1.2.3 Spark MLlib和ML 8
1.2.4 GraphX 8
1.2.5 SparkR 9
1.3 本章小结 10
第2章 Spark部署和运行 11
2.1 部署准备 11
2.1.1 下载Spark 11
2.1.2 编译Spark版本 12
2.1.3 集群部署概述 14
2.2 Spark部署 15
2.2.1 Local模式部署 16
2.2.2 Standalone模式部署 16
2.2.3 YARN模式部署 18
2.3 运行Spark应用程序 19
2.3.1 Local模式运行Spark应用程序 19
2.3.2 Standalone模式运行Spark应用程序 20
2.3.3 YARN模式运行Spark 22
2.3.4 应用程序提交和参数传递 23
2.4 本章小结 26
第3章 Spark程序开发 27
3.1 使用Spark Shell编写程序 27
3.1.1 启动Spark Shell 28
3.1.2 加载text文件 28
3.1.3 简单RDD操作 28
3.1.4 简单RDD操作应用 29
3.1.5 RDD缓存 30
3.2 构建Spark的开发环境 30
3.2.1 准备环境 30
3.2.2 构建Spark的Eclipse开发环境 31
3.2.3 构建Spark的IntelliJ IDEA开发环境 32
3.3 独立应用程序编程 40
3.3.1 创建SparkContext对象 40
3.3.2 编写简单应用程序 40
3.3.3 编译并提交应用程序 40
3.4 本章小结 43
第4章 编程模型 44
4.1 RDD介绍 44
4.1.1 RDD特征 45
4.1.2 RDD依赖 45
4.2 创建RDD 47
4.2.1 集合(数组)创建RDD 47
4.2.2 存储创建RDD 48
4.3 RDD操作 49
4.3.1 转换操作 50
4.3.2 执行操作 52
4.3.3 控制操作 54
4.4 共享变量 56
4.4.1 广播变量 57
4.4.2 累加器 57
4.5 本章小结 58
第5章 作业执行解析 59
5.1 基本概念 59
5.1.1 Spark组件 59
5.1.2 RDD视图 60
5.1.3 DAG图 61
5.2 作业执行流程 62
5.2.1 基于Standalone模式的Spark架构 62
5.2.2 基于YARN模式的Spark架构 64
5.2.3 作业事件流和调度分析 65
5.3 运行时环境 67
5.3.1 构建应用程序运行时环境 68
5.3.2 应用程序转换成DAG 68
5.3.3 调度执行DAG图 70
5.4 应用程序运行实例 71
5.5 本章小结 72
第6章 Spark SQL与DataFrame 73
6.1 概述 73
6.1.1 Spark SQL 发展 74
6.1.2 Spark SQL 架构 74
6.1.3 Spark SQL 特点 76
6.1.4 Spark SQL 性能 76
6.2 DataFrame 77
6.2.1 DataFrame和RDD的区别 78
6.2.2 创建DataFrame 78
6.2.3 DataFrame 操作 80
6.2.4 RDD转化为DataFrame 82
6.3 数据源 84
6.3.1 加载保存操作 84
6.3.2 Parquet 文件 85
6.3.3 JSON 数据集 88
6.3.4 Hive 表 89
6.3.5 通过JDBC 连接数据库 91
6.3.6 多数据源整合查询的小例子 92
6.4 分布式的SQL Engine 93
6.4.1 运行Thrift JDBC/ODBC 服务 93
6.4.2 运行 Spark SQL CLI 94
6.5 性能调优 94
6.5.1 缓存数据 94
6.5.2 调优参数 94
6.5.3 增加并行度 95
6.6 数据类型 95
6.7 本章小结 96
第7章 深入了解Spark Streaming 97
7.1 基础知识 97
7.1.1 Spark Streaming工作原理 98
7.1.2 DStream编程模型 99
7.2 DStream操作 100
7.2.1 Input DStream 100
7.2.2 DStream转换操作 102
7.2.3 DStream状态操作 104
7.2.4 DStream输出操作 106
7.2.5 缓存及持久化 107
7.2.6 检查点 108
7.3 性能调优 109
7.3.1 优化运行时间 109
7.3.2 设置合适的批次大小 111
7.3.3 优化内存使用 111
7.4 容错处理 112
7.4.1 文件输入源 112
7.4.2 基于Receiver的输入源 112
7.4.3 输出操作 113
7.5 一个例子 113
7.6 本章小结 115
第8章 Spark MLlib与机器学习 116
8.1 机器学习概述 116
8.1.1 机器学习分类 117
8.1.2 机器学习算法 117
8.2 Spark MLlib介绍 118
8.3 Spark MLlib库 119
8.3.1 MLlib数据类型 120
8.3.2 MLlib的算法库与实例 123
8.4 ML库 142
8.4.1 主要概念 143
8.4.2 算法库与实例 145
8.5 本章小结 147
第9章 GraphX图计算框架与应用 148
9.1 概述 148
9.2 Spark GraphX架构 149
9.3 GraphX编程 150
9.3.1 GraphX的图操作 152
9.3.2 常用图算法 161
9.4 应用场景 164
9.4.1 图谱体检平台 164
9.4.2 多图合并工具 165
9.4.3 能量传播模型 165
9.5 本章小结 166
第10章 SparkR(R on Spark) 167
10.1 概述 167
10.1.1 SparkR介绍 168
10.1.2 SparkR的工作原理 168
10.1.3 R语言介绍 169
10.1.4 R语言与其他语言的通信 170
10.2 安装SparkR 170
10.2.1 安装R语言与rJava 171
10.2.2 SparkR的安装 171
10.3 SparkR的运行与应用示例 172
10.3.1 运行SparkR 172
10.3.2 SparkR示例程序 173
10.3.3 R的DataFrame操作方法 175
10.3.4 SparkR的DataFrame 183
10.4 本章小结 186
实 战 篇
第11章 大数据分析系统 188
11.1 背景 188
11.2 数据格式 189
11.3 应用架构 189
11.4 业务实现 190
11.4.1 流量、性能的实时分析 190
11.4.2 流量、性能的统计分析 192
11.4.3 业务关联分析 193
11.4.4 离线报表分析 195
11.5 本章小结 199
第12章 系统资源分析平台 200
12.1 业务背景 200
12.1.1 业务介绍 201
12.1.2 实现目标 201
12.2 应用架构 201
12.2.1 总体架构 202
12.2.2 模块架构 202
12.3 代码实现 203
12.3.1 Kafka集群 203
12.3.2 数据采集 207
12.3.3 离线数据处理 207
12.3.4 数据表现 207
12.4 结果验证 213
12.5 本章小结 214
第13章 在Spark上训练LR模型 215
13.1 逻辑回归简介 215
13.2 数据格式 216
13.3 MLlib中LR模型源码介绍 217
13.3.1 逻辑回归分类器 217
13.3.2 优化方法 219
13.3.3 算法效果评估 221
13.4 实现案例 223
13.4.1 训练模型 223
13.4.2 计算AUC 223
13.5 本章小结 224
第14章 获取二级邻居关系图 225
14.1 理解PageRank 225
14.1.1 初步理解PageRank 225
14.1.2 深入理解PageRank 227
14.2 PageRank算法基于Spark的实现 228
14.3 基于PageRank的二级邻居获取 232
14.3.1 系统设计 232
14.3.2 系统实现 232
14.3.3 代码提交命令 235
14.4 本章小结 236
高 级 篇
第15章 调度管理 238
15.1 调度概述 238
15.1.1 应用程序间的调度 239
15.1.2 应用程序中的调度 241
15.2 调度器 242
15.2.1 调度池 243
15.2.2 Job调度流程 243
15.2.3 调度模块 245
15.2.4 Job的生与死 249
15.3 本章小结 253
第16章 存储管理 254
16.1 硬件环境 254
16.1.1 存储系统 254
16.1.2 本地磁盘 255
16.1.3 内存 255
16.1.4 网络和CPU 255
16.2 Storage模块 256
16.2.1 通信层 256
16.2.2 存储层 258
16.3 Shuff?le数据持久化 261
16.4 本章小结 263
第17章 监控管理 264
17.1 Web界面 264
17.2 Spark UI历史监控 266
17.2.1 使用spark-server的原因 266
17.2.2 配置spark-server 266
17.3 监控工具 269
17.3.1 Metrics工具 269
17.3.2 其他工具 271
17.4 本章小结 272
第18章 性能调优 273
18.1 文件的优化 273
18.1.1 输入采用大文件 273
18.1.2 lzo压缩处理 274
18.1.3 Cache压缩 275
18.2 序列化数据 277
18.3 缓存 278
18.4 共享变量 278
18.4.1 广播变量 279
18.4.2 累加器 279
18.5 流水线优化 280
18.6 本章小结 280
扩 展 篇
第19章 Spark-jobserver实践 282
19.1 Spark-jobserver是什么 282
19.2 编译、部署及体验 283
19.2.1 编译及部署 283
19.2.2 体验 286
19.3 Spark-jobserver程序实战 288
19.3.1 创建步骤 288
19.3.2 一些常见的问题 289
19.4 使用场景:用户属性分布计算 289
19.4.1 项目需求 290
19.4.2 计算架构 290
19.4.3 使用NamedRDD 291
19.5 本章小结 291
第20章 Spark Tachyon实战 292
20.1 Tachyon文件系统 292
20.1.1 文件系统概述 293
20.1.2 HDFS和Tachyon 294
20.1.3 Tachyon设计原理 294
20.1.4 Tachyon特性 295
20.2 Tachyon入门 295
20.2.1 Tachyon 部署 295
20.2.2 Tachyon API 297
20.2.3 在Spark上使用Tachyon 298
20.3 容错机制 299
20.4 本章小结 300
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×