基本信息
- 商品名:正版新书 Spark海量数据处理 技术详解与平台实战9787115507006人民邮电
- ISBN:9787115507006
- 定价:99.00
- 出版社:人民邮电出版社
- 作者:范东来
参考信息(以实物为准)
- 出版时间:2019-12-01
- 印刷时间:
- 版次:1
- 印次:1
- 包装:平装
- 开本:16开
- 用纸:胶版纸
- 页数:388
- 字数:
编辑推荐
在数字经济时代,数据是*重要的资源要素;同时,新的数据又在源源不断地产生,企业面临的一个基本问题就是如何管理和利用这些数据,这对传统的数据处理方法与分析框架提出了新的诉求和挑战,也是全球业界与学界*为关心的问题。为了满足大数据时代对信息的快速处理的需求,一个分布式的开源计算框架Apache Spark应运而生。经过十年的发展,Spark已经成为目前大数据处理的标杆,在整个业界得到了广泛的使用。对大数据工程师来说,用Spark构建数据管道无疑是很好的选择,而对数据科学家来说,Spark也是高效的数据探索工具。
本书基于Spark发行版□.4.4写作而成,包含大量的实例与一个完整项目,技术理论与实战相结合,层次分明,循序渐进。本书不仅介绍了如何开发Spark应用的基础内容,包括Spark架构、Spark编程、SparkSQL、Spark调优等,还探讨了Structured Streaming、Spark机器学习、Spark图挖掘、Spark深度学习、Alluxio系统等高级主题,同时完整实现了一个企业背景调查系统,借鉴了数据湖与Lambda架构的思想,涵盖了批处理、流处理应用开发,并加入了一些开源组件来满足业务需求。学习该系统可以使读者从实战中巩固所学,并将技术理论与应用实战融会贯通。
本书适合准备学习Spark的开发人员和数据分析师,以及准备将Spark应用到实际项目中的开发人员和管理人员阅读,也适合计算机相关专业的高年级本科生和研究生学习和参考,对于具有一定的Spark使用经验并想进一步提升的数据科学从业者也是很好的参考资料。
内容简介
本书基于Spark发行版□.4.4写作而成,包含大量的实例与一个完整项目,层次分明,循序渐进。全书分为3部分,涵盖了技术理论与实战,读者可以从实战中巩固学习到的知识。□□部分主要围绕BDAS(伯克利数据分析栈),不仅介绍了如何开发Spark应用的基础内容,还介绍了Structured Streaming、Spark机器学习、Spark图挖掘、Spark深度学习等高级主题,此外还介绍了Alluxio系统。第二部分实现了一个企业背景调查系统,比较新颖的是,该系统借鉴了数据湖与Lambda架构的思想,涵盖了批处理、流处理应用开发,并加入了一些开源组件来满足需求,既是对本书□□部分很好的巩固,又完整呈现了一个实时大数据应用的开发过程。第三部分是对全书的总结和展望。
本书适合准备学习Spark的开发人员和数据分析师,以及准备将Spark应用到实际项目中的开发人员和管理人员阅读,也适合计算机相关专业的高年级本科生和研究生学习和参考,对于具有一定的Spark使用经验并想进一步提升的数据科学从业者也是很好的参考资料。
目录
□ □部分 基础篇
□ □章 序篇 □
1.1 Spark与BDAS 3
1.□ Databricks 4
1.3 如何通过GitHub向Spark贡献代码 5
1.4 如何选择Spark编程语言 8
1.5 函数式编程思想 9
1.6 小结 1□
第 □章 Spark编程 13
□.1 Spark架构 13
□.□ Spark □.x与Spark 3.x 15
□.□.1 Tungsten项目 16
□.□.□ 统一Dataset和DataFrame 接口 □0
□.□.3 新一代流处理技术:Structured Streaming与持续型应用 □1
□.□.4 Hydrogen项目和Spark 3.x □□
□.3 部署Spark □6
□.3.1 Spark on YARN □7
□.3.□ Spark on Mesos □8
□.3.3 Spark Standalone □9
□.3.4 Spark on Kubernetes 30
□.3.5 安装Spark 31
□.3.6 提交作业 31
□.3.7 Spark Shell 33
□.3.8 初始化SparkSession 34
□.4 RDD与算子 34
□.4.1 RDD 34
□.4.□ 创建RDD 36
□.4.3 转换算子 38
□.4.4 行动算子 43
□.4.5 RDD血统与Spark容错 45
□.5 Spark Shuffle 47
□.5.1 Hash Shuffle 47
□.5.□ Sort-based Shuffle 49
□.6 共享□量 50
□.6.1 广播□量 50
□.6.□ 累加器 53
□.7 Spark的多语言支持 55
□.7.1 PySpark 55
□.7.□ SparkR 56
□.8 Spark性能调优 56
□.8.1 硬件配置与资源管理平台 57
□.8.□ 参数调优与应用调优 57
□.9 使用Jupyter Notebook基于Spark探索数据:蒙特卡罗方法预测股票价格 64
□.9.1 Jupyter Notebook 64
□.9.□ 用蒙特卡罗方法预测股票价格 67
□.10 小结 70
第3章 Spark统一编程接口:DataFrame、Dataset和Spark SQL 71
3.1 Catalyst优化器 7□
3.1.1 SQL抽象语法树 7□
3.1.□ 从ULEP到RLEP的过程 73
3.1.3 调优RLEP 73
3.1.4 全阶段代码生成 74
3.□ DataFrame API 75
3.□.1 创建DataFrame 75
3.□.□ 查询 77
3.□.3 窗口函数 80
3.□.4 用户自定义函数 83
3.□.5 写入 85
3.3 Dataset API 86
3.3.1 RDD、DataFrame和Dataset 87
3.3.□ 安全类型的UDAF 88
3.4 Spark SQL 89
3.4.1 创建临时视图 90
3.4.□ 使用Hive元数据 90
3.4.3 查询语句 91
3.4.4 函数 94
3.4.5 用户自定义函数 97
3.5 Google Dremel与列式存储 97
3.5.1 Apache Parquet 99
3.5.□ Apache ORC 100
3.5.3 Apache CarbonData 100
3.5.4 对比测试 101
3.6 使用Spark SQL进行数据探索 10□
3.7 小结 107
第4章 Spark流处理:Spark Streaming
与Structured Streaming 108
4.1 一个Spark Streaming流处理的例子 109
4.□ 消息送达保证 110
4.3 Google MillWheel系统和Google Dataflow模型 114
4.3.1 Google MillWheel设计思想 114
4.3.□ Google MillWheel如何实现“恰好一次”消息送达语义 114
4.3.3 Google MillWheel对乱序数据与晚到数据的处理 115
4.3.4 Google Dataflow:流处理和批处理的统一与取舍 117
4.4 Spark Streaming 1□□
4.4.1 关键抽象与架构 1□3
4.4.□ 无状态的转换算子 1□5
4.4.3 有状态的转换算子 1□9
4.4.4 输入与输出 134
4.4.5 Spark Streaming与Spark SQL 138
4.4.6 容错与结果正确性 139
4.4.7 性能调优 141
4.5 Structured Streaming 144
4.5.1 关键抽象与架构 144
4.5.□ 操作 147
4.5.3 输入和输出 154
4.5.4 股票交易价格实时分析 157
4.6 流处理技术对比 16□
4.7 小结 163
第5章 Spark图计算:GraphX 164
5.1 图模式 164
5.1.1 图结构 164
5.1.□ 图存储 165
5.1.3 图数据库 168
5.1.4 图挖掘技术 169
5.1.5 属性图与RDF 170
5.□ 生成图 171
5.□.1 从已有数据中生成 17□
5.□.□ 通过GraphGenerators生成 174
5.3 图算子 175
5.3.1 属性算子 175
5.3.□ 结构算子 175
5.3.3 连接算子 175
5.3.4 aggregateMessages 176
5.4 Pregel API 177
5.4.1 图分区 177
5.4.□ 像顶点一样思考 180
5.4.3 用户自定义函数 18□
5.4.4 PageRank的GraphX实现 183
5.4.5 标签传播算法 186
5.5 SQL on Graph 187
5.5.1 生成图 188
5.5.□ SQL查询 189
5.5.3 模式发现 190
5.5.4 一些GraphX已经有的算法 191
5.5.5 一些GraphX没有的算法 191
5.5.6 AggregateMessages 19□
5.6 n度邻居顶点算法 193
5.7 小结 196
第6章 Spark机器学习:MLlib 197
6.1 机器学习 197
6.1.1 典型的机器学习工作流 198
6.1.□ 机器学习任务的学习类型 199
6.□ Spark MLlib与Spark ML □01
6.3 数据预处理 □05
6.3.1 数据标准化 □05
6.3.□ 缺失值处理 □07
6.3.3 特征抽取 □08
6.3.4 特征选择 □1□
6.4 分类算法应用 □14
6.4.1 决策树 □14
6.4.□ 随机森林 □17
6.4.3 人体状态监测器 □18
6.4.4 集成学习 □□3
6.4.5 梯度提升决策树 □□4
6.5 聚类算法应用 □□5
6.5.1 物以类聚 □□5
6.5.□ k均值聚类算法 □□6
6.5.3 实现 □□7
6.6 推荐系统应用 □30
6.6.1 基于用户的协同过滤 □31
6.6.□ 基于商品的协同过滤 □33
6.6.3 两种协同过滤的对比 □35
6.6.4 基于模型的协同过滤 □36
6.6.5 Movielens电影推荐系统 □37
6.7 训练之后 □38
6.7.1 模型评估 □39
6.7.□ 交叉验证与超参调优 □41
6.8 流式机器学习 □4□
6.8.1 流回归 □4□
6.8.□ 流聚类 □44
6.8.3 用流处理应用来监控模型 □45
6.9 小结 □49
第7章 Spark深度学习:Deeplearning4j □50
7.1 常见的深度学习框架 □51
7.□ Deeplearning4j □5□
7.3 卷积神经网络 □5□
7.3.1 理解卷积神经网络 □5□
7.3.□ 用Deeplearning4j训练卷积神经网络 □54
7.4 循环神经网络 □57
7.4.1 理解循环神经网络 □58
7.4.□ 用Deeplearning4j训练循环神经网络 □6□
7.5 自动编码器 □64
7.5.1 理解自动编码器 □64
7.5.□ 用Deeplearning4j训练自动编码器 □67
7.6 使用GPU □69
7.7 小结 □70
第8章 分布式存储:Alluxio □71
8.1 Alluxio架构 □71
8.1.1 Alluxio的组成部分 □73
8.1.□ 虚拟的Alluxio □73
8.1.3 统一而透明的命名空间 □74
8.□ 快速上手Alluxio □75
8.□.1 安装Alluxio □75
8.□.□ Alluxio配置 □76
8.□.3 Alluxio血统机制 □77
8.3 与上层框架集成 □77
8.3.1 与Spark集成 □78
8.3.□ 与Presto集成 □79
8.3.3 与HBase集成 □80
8.4 与底层存储系统集成 □81
8.4.1 与Ceph集成 □81
8.4.□ 挂载其他文件系统 □81
8.5 如何访问Alluxio □8□
8.6 Alluxio应用案例 □83
8.6.1 携程网 □83
8.6.□ 滴滴出行 □84
8.6.3 陌陌 □86
8.7 小结 □88
第二部分 应用篇
第9章 企业数据湖与Lambda架构 □90
9.1 数据湖 □90
9.1.1 数据的湖泊 □90
9.1.□ 数据湖要解决的问题 □91
9.1.3 数据湖与数据仓库对比 □9□
9.1.4 数据湖如何工作 □93
9.□ Lambda架构 □93
9.□.1 批处理层 □94
9.□.□ 服务层 □95
9.□.3 速度层 □95
9.□.4 Lambda架构 □96
9.□.5 Lambda架构的原则 □97
9.3 基于Lambda架构的数据湖分层设计 □97
9.3.1 数据获取层 □98
9.3.□ 消息层 □99
9.3.3 数据摄取层 300
9.3.4 数据存储层 300
9.3.5 Lambda层 301
9.4 Lambda架构的应用 301
9.4.1 搜索引擎 301
9.4.□ Druid 30□
9.5 构建Lambda架构的技术 303
9.6 小结 304
□ □0章 大数据企业动态背景调查平台 305
10.1 企业背景调查 305
10.□ 基于大数据的企业动态背景调查 308
10.□.1 企业行为信息 308
10.□.□ 企业关联方分析 311
10.3 数据采集与数据字典 313
10.4 企业背景调查平台需求 317
10.4.1 企业关联图谱展示 317
10.4.□ 企业风险指标计算 318
10.5 企业关联图谱的模式 318
10.6 传统数据仓库架构 3□0
10.7 小结 3□1
□ □1章 平台设计 3□□
11.1 平台架构 3□□
11.1.1 数据源 3□3
11.1.□ 数据管道 3□3
11.1.3 速度层 3□5
11.1.4 批处理层 3□5
11.1.5 服务层 3□5
11.1.6 查询层 3□5
11.1.7 可视化组件 3□5
11.□ 物理拓扑 3□6
11.3 服务层图数据库设计 3□6
11.4 项目规划 3□7
11.5 小结 3□7
□ □□章 数据管道层 3□8
1□.1 安装并配置canal 3□8
1□.□ 实现Kafka生产者 330
1□.3 安装并配置Flume 335
1□.4 小结 336
□ □3章 速度层 337
13.1 速度层输入 337
13.1.1 类型1 338
13.1.□ 类型□ 338
13.1.3 类型3 339
13.1.4 类型4 340
13.□ Cypher基础 341
13.□.1 写入 34□
13.□.□ 读取 343
13.□.3 删除 344
13.3 生成Cypher语句 345
13.3.1 类型1 345
13.3.□ 类型□ 346
13.3.3 类型3 346
13.3.4 类型4 346
13.3.5 实现 347
13.4 整合Structured Streaming 35□
13.4.1 Neo4jWriter 353
13.4.□ 启动流 354
13.5 小结 355
□ □4章 批处理层 356
14.1 自融风险监测 356
14.□ 生成主数据集 357
14.□.1 全量与增量 358
14.□.□ 合并 359
14.□.3 数据治理 361
14.3 用GraphX计算企业自融风险值 363
14.4 导入HBase 364
14.5 调度中心 366
14.5.1 Airflow 366
14.5.□ 配置 368
14.6 小结 370
□ □5章 服务层与查询层 371
15.1 不仅仅是合并 371
15.1.1 NetworkX 37□
15.1.□ 计算流程 37□
15.□ 接口开发 37□
15.3 小结 376
第三部分 总结篇
□ □6章 总结和展望 378
16.1 统一的大数据处理接口 378
16.1.1 Unified Spark 378
16.1.□ Apache Beam 379
16.□ Kappa架构 380
16.3 大数据处理技术 38□
16.3.1 Apache Flink 38□
16.3.□ Apache Apex 383
16.3.3 Ray 384
16.4 Spark未来发展方向 386
作者简介
范东来,北京航空航天大学硕士,泛山科技联合创始人,Spark Contributor、SupersetContributor,架构师,技术图书作者和译者,著有《Hadoop海量数据处理》,译有《解读NoSQL》《NoSQL**指南》《神经网络算法和实现》《Hadoop深度学习》《精通数据科学算法》等,另译有畅销小说《巧克力时代:因为这是我的血脉》。