基于大数据分析实战,图文并茂,系统讲解Spark内核的原理,有助于读者快速掌握Spark源集群计算框架的使用方法。 Spark 是专为大规模数据处理而设计的快速通用的计算引擎,本书涵盖 Spark 3.0 新特性。 本书结合大量原理图和流程图,系统介绍Spark内核的相关技术。 本书注重实战,图文并茂,系统讲解了Spark内核原理、Spark实战应用、 Spark数据源、Spark流式计算、Spark性能调优和数据湖等内容。
售 价:¥
纸质售价:¥81.80购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
内容提要
前 言
本书主要内容
致谢
作者简介
服务与支持
提交勘误
与我们联系
关于异步社区和异步图书
第1章 Spark概述及入门实战
1.1 Spark简介
1.1.1 为什么要学习Spark
1.计算速度快
2.易于使用
3.一站式大数据解决方案
4.支持多种资源管理器
5.Spark生态圈丰富
1.1.2 学好Spark的关键点
1.1.3 Spark学习难点
1.1.4 本书编写思路
1.2 Spark原理及特点
1.2.1 Spark的核心优势
1.高性能
2.高容错性
3.通用性
1.2.2 Spark生态介绍
1.2.3 Spark模块的组成
1.Spark Core
2.Spark SQL
3.Spark Streaming
4.GraphX
5.Spark MLlib
6.SparkR
1.2.4 Spark运行模式
1.2.5 Spark集群的角色组成
1.集群管理器
2.工作节点
3.执行器
4.Spark应用程序
5.驱动器
1.2.6 Spark核心概念
1.SparkContext
2.RDD
3.DAG
4.DAG调度器
5.任务调度器
6.作业
7.Stage
8.任务集
9.任务
10.总结
1.2.7 Spark作业运行流程
1.Spark作业运行流程简述
2.Spark RDD迭代过程
3.Spark作业运行的详细流程
4.YARN资源管理器
5.YARN任务的提交和运行流程
6.Spark应用程序在YARN上的执行流程
1.3 Spark入门实战
1.3.1 Spark独立环境安装实战
1.3.2 YARN环境安装实战
1.3.3 Spark批处理作业入门实战
1.3.4 Spark流式作业入门实战
第2章 Spark的作业调度和资源分配算法
2.1 Spark的作业调度
2.1.1 Spark作业运行框架概述
1.Spark任务调度流程
2.Spark作业运行组件
2.1.2 Spark调度器原理
2.1.3 Spark应用程序的核心概念
2.1.4 Spark应用程序的调度流程
1.作业划分原则
2.Stage划分原则
3.Stage提交原则
2.1.5 在YARN级别调度Spark作业
2.1.6 在任务级别调度Spark作业
1.任务调度流程
2.任务的FIFO调度策略
3.任务的FAIR调度策略
2.1.7 本地化调度简介
1.数据本地性的概念
2.数据本地性的级别
3.数据本地性之间的包含关系
2.1.8 本地化调度流程:延迟调度策略
2.1.9 Spark任务延迟调度
2.1.10 Spark失败重试与黑名单机制
2.1.11 推测执行
2.1.12 资源分配机制
1.静态资源分配
2.动态资源分配
2.2 Spark on YARN资源调度
2.2.1 Spark on YARN运行模式
1.Spark YARN客户端模式的运行流程
2.Spark YARN集群模式的运行流程
2.2.2 YARN调度器
1.FIFO调度器
2.Capacity调度器
3.Fair调度器
2.3 RDD概念
2.3.1 RDD简介
2.3.2 RDD的特点
2.4 RDD分区
2.4.1 分区的概念
2.4.2 分区器
2.4.3 自定义分区器
2.5 RDD依赖关系
2.6 Stage
2.7 RDD持久化
2.7.1 RDD持久化的概念
2.7.2 RDD持久化的使用
2.7.3 RDD持久化级别
2.7.4 RDD持久化原则
2.8 RDD检查点
2.9 RDD实战
2.9.1 编写一个简单的RDD演示程序
2.9.2 利用外部存储系统生成RDD
2.9.3 RDD支持Transformation操作和Action操作
2.9.4 RDD懒加载
2.9.5 Spark函数的3种实现方式
2.9.6 RDD操作中常用Transformation算子的原理及使用
2.9.7 RDD操作中常用Action算子的原理及使用
2.9.8 Spark广播变量的概念、好处和使用
1.广播变量的概念
2.广播变量的好处
3.广播变量的使用
第3章 Spark SQL、DataFrame、Dataset原理和实战
3.1 Spark SQL基础概念
3.1.1 Spark SQL介绍
3.1.2 Spark SQL查询语句介绍
3.1.3 DataFrame的概念
3.1.4 Dataset的概念
3.2 创建一个Spark SQL应用
3.3 Spark SQL视图操作
1.临时视图
2.全局临时视图
3.4 Spark Dataset操作
3.5 Spark DataFrame操作
3.5.1 DataFrame Schema设置
3.5.2 DataFrame数据加载
1.读取文件
2.手动指定文件类型
3.在DataFrame上运行 SQL
4.把数据写出到文件中
3.5.3 DataFrame数据保存
3.6 Spark SQL操作
3.6.1 Spark SQL表关联操作
3.6.2 Spark SQL函数操作
1.Spark SQL常用的高级函数
2.用户自定义函数(UDF)
3.一般SQL执行过程
4.Spark SQL执行过程
第4章 深入理解Spark数据源
4.1 Spark文件读写原理
4.1.1 Spark数据分布
1.目录树概述
2.目录树级别过滤
3.行组级别过滤
4.列级别过滤
4.1.2 Spark数据读取过程
4.1.3 Spark数据写出过程
1.Spark文件写出原则(temporary机制)
2.Spark按照分区将数据写出的过程
3.在写任务失败时重试
4.2 Spark数据格式
4.2.1 TEXT
4.2.2 CSV
1.CSV的概念
2.CSV编辑规则
3.CSV数据示例
4.CSV的特点
5.CSV的使用
4.2.3 JSON
1.JSON的概念
2.JSON结构
3.JSON数据示例
4.JSON的特点
5.JSON的使用
4.2.4 Parquet
1.列式存储的概念
2.Parquet的概念
3.Parquet文件结构
4.Parquet的特点
5.Parquet的使用
4.2.5 ORC
1.ORC的概念
2.ORC文件结构
3.ORC索引统计信息
4.ORC文件压缩
5.ORC文件的优势
6.ORC文件的读写
4.2.6 AVRO
1.AVRO的概念
2.AVRO的特点
3.AVRO数据类型
4.AVRO数据的读写
4.2.7 到底应该使用哪种数据格式
4.3 Spark读写HDFS
4.3.1 HDFS的概念和特点
4.3.2 HDFS架构
4.3.3 HDFS数据的写入和读取流程
4.3.4 HDFS的使用
4.4 Spark读写HBase
4.4.1 HBase的概念
4.4.2 HBase架构
4.4.3 HBase数据模型
4.4.4 HBase的使用
4.5 Spark读写MongoDB
4.5.1 MongoDB的概念
4.5.2 MongoDB数据模型
4.5.3 MongoDB架构
1.MongoDB主从架构
2.MongoDB双主架构
3.MongoDB副本集架构
4.MongoDB Shard集群架构
4.5.4 MongoDB的使用
4.6 Spark读写Cassandra
4.6.1 Cassandra的概念
4.6.2 Gossip协议
4.6.3 Cassandra数据模型
4.6.4 Cassandra架构
1.一致性哈希算法
2.虚拟节点
3.Cassandra的数据写入流程
4.Cassandra数据读取和后台修复
4.6.5 Cassandra的使用
4.7 Spark读写MySQL
4.8 Spark读写Kafka
4.8.1 Kafka的概念
4.8.2 Kafka集群架构
4.8.3 Kafka数据存储设计
1.分区数据文件
2.分段数据文件
4.8.4 Kafka消息并发设计
1.多生产者并发地产生消息
2.多消费者并发地使用消息
4.8.5 Kafka的使用
4.9 Spark读写ElasticSearch
4.9.1 ElasticSearch的概念
4.9.2 ElasticSearch数据模型
4.9.3 ElasticSearch集群架构
4.9.4 ElasticSearch副本架构
4.9.5 ElasticSearch的使用
第5章 流式计算原理和实战
5.1 Spark Streaming
5.1.1 Spark Streaming介绍
5.1.2 Spark Streaming入门实战
1.创建一个基于Socket数据源的Spark Streaming应用
2.创建一个基于Kafka数据源的Spark Streaming应用
5.1.3 Spark Streaming的数据源
5.1.4 DStream
1.DStream和RDD的关系
2.DStream操作
3.DStream数据持久化
5.2 Spark Structured Streaming
5.2.1 Spark Structured Streaming介绍
5.2.2 Spark Structured Streaming的特点
5.2.3 Spark Structured Streaming的数据模型
5.2.4 创建一个Spark Structured Streaming应用
5.2.5 时间概念、延迟数据处理策略和容错语义
1.时间概念
2.延迟数据处理策略
3.恰好一次性语义的实现原理
5.2.6 Spark Structured Streaming编程模型
1.Spark Structured Streaming中的文件数据源
2.Kafka数据源
3.Socket数据源(测试用)
4.rate source数据源(测试用)
5.2.7 在结构化数据流上执行操作
1.结构化数据流的基本操作
2.时间窗口操作
3.延迟数据处理
4.水印
5.Spark Structured Streaming的3种输出模式
6.使用水印清除聚合状态的条件
7.Stream以及Stream的连接操作
8.处理重复数据
9.执行数据流连接操作时的多水印处理策略
5.2.8 启动Spark Structured Streaming
5.2.9 Spark Structured Streaming结果输出
5.2.10 触发器
1.未指定(默认)
2.固定间隔微批
3.一次微批执行
4.连续的固定检查点间隔
第6章 亿级数据处理平台Spark性能调优
6.1 内存调优
6.1.1 JVM内存调优
1.新生代
2.老年代
3.元数据区
4.JVM堆内存特点总结
5.JVM GC
6.JVM内存调参
6.1.2 堆外内存设置
6.1.3 storageFraction设置
6.1.4 Spark JVM调优的最佳实践
6.2 任务调优
6.2.1 驱动器数量、内存及CPU配置
6.2.2 设置合理的并行度
1.文件、数据块、输入分片、任务、分区的概念
2.并行度的概念
3.Spark分区类型:输入型分区、Shuffle型分区和输出型分区
4.Spark Shuffle分区数的计算
5.Spark数据输入分区数调优实战
6.Spark数据输出分区数调优实战
7.Spark并行度设置最佳实践
6.2.3 任务等待时长调优
6.2.4 黑名单调优
6.3 数据本地性调优
6.3.1 数据本地化介绍
6.3.2 RDD的复用和数据持久化
6.3.3 广播变量
6.3.4 Kryo序列化
6.3.5 检查点
6.4 算子调优
6.4.1 使用mapPartitions()或mapPartitionWithIndex()函数取代map()函数
6.4.2 使用foreachPartition()函数取代foreach()函数
6.4.3 使用coalesce()函数取代repartition()函数
6.4.4 使用repartitionAndSortWithinPartitions()函数取代“重分区+排序”操作
6.4.5 使用reduceByKey()函数取代groupByKey()函数
6.4.6 连接不产生Shuffle:map-side关联
6.5 Spark SQL调优
6.6 Spark Shuffle调优
6.7 Spark Streaming调优
6.7.1 设置合理的批处理时间(batchDuration)
6.7.2 增加并行度
6.7.3 使用Kryo序列化器序列化数据
6.7.4 缓存经常需要使用的数据
6.7.5 清除不需要的数据
6.7.6 设置合理的CPU资源
6.7.7 设置合理的JVM GC
6.7.8 在处理数据前进行重分区
6.7.9 设置合理的内存
6.8 处理Spark数据倾斜问题
6.8.1 什么是数据倾斜
6.8.2 导致数据倾斜的原因是什么
6.8.3 如何判断Spark应用程序在运行中出现了数据倾斜
6.8.4 数据倾斜消除方案
1.对源数据进行聚合并过滤导致数据倾斜的键
2.使用随机数消除数据倾斜
第7章 Spark机器学习库
7.1 Spark机器学习概述
7.1.1 为什么要使用机器学习
7.1.2 机器学习的应用场景
7.1.3 机器学习的分类
1.监督学习
2.无监督学习
3.半监督学习
4.强化学习
7.1.4 机器学习算法
1.分类算法
2.聚类算法
3.回归分析
4.关联规则
5.协同过滤
6.深度学习
7.其他机器学习算法
7.1.5 机器学习流程概述
1.数据收集与存储
2.数据清洗与转换
3.模型训练
4.模型的部署与整合
5.模型的监控与反馈
7.1.6 数据探索
7.2 Spark机器学习常用统计方法
7.2.1 常用统计指标概述
7.2.2 Spark ML基础统计实战
7.2.3 Spark ML相关性分析
1.皮尔逊相关系数
2.斯皮尔曼相关系数
7.2.4 Spark ML数据抽样
7.3 Spark分类模型
7.3.1 分类模型介绍
1.分类模型的概念
2.分类模型的常见应用场景
3.Spark MLlib中的分类模型
4.凸优化问题
7.3.2 线性回归
1.线性回归的概念
2.线性回归分析的流程
7.3.3 逻辑回归
1.逻辑回归的概念
2.逻辑回归的原理
3.逻辑回归的特点
7.3.4 朴素贝叶斯
1.先验概率
2.后验概率
3.贝叶斯定理
4.贝叶斯模型的优缺点
7.3.5 决策树
1.决策树的概念
2.决策树的原理
3.决策树的剪枝
4.Spark MLlib是如何实现决策树的
7.4 协同过滤
7.5 Spark聚类模型
7.5.1 聚类模型的概念
7.5.2 聚类分析算法
7.5.3 k-均值算法模型
1.k-均值算法的概念
2.k-均值算法的求解流程
3.k-均值算法的停止条件
4.k-均值++算法
5.k-均值算法中簇数的选择
第8章 Spark 3.0的新特性和数据湖
8.1 Spark 3.0新特性概述
8.1.1 AQE
1.AQE的概念
2.AQE的工作原理
8.1.2 Spark SQL的新特性
1.动态合并Shuffle分区
2.动态调整表关联策略
3.动态优化倾斜的表关联操作
4.支持动态分区裁剪
5.兼容ANSI SQL
6.支持更丰富的join hints
8.1.3 Koalas和增强的PySpark
1.Koalas
2.增强的PySpark
8.1.4 数据湖
8.1.5 Hydrogen、流和可扩展性
8.1.6 Spark 3.0的其他新特性
8.2 Spark未来的趋势——数据湖
8.2.1 为什么需要数据湖
1.什么是数据湖
2.数据湖与数据仓库的对比
3.数据湖面临的挑战
8.2.2 Delta Lake
1.Delta Lake简介
2.Delta Lake的主要特征
3.Delta Lake数据存储
4.Delta Lake原子性保障
5.Delta Lake并发写
6.Delta Lake大规模元数据处理
8.2.3 Delta Lake实战
1.初始化项目
2.创建Delta Lake表
3.使用data_update数据集更新Delta Lake表数据
4.删除Delta Lake表数据
5.融合更新Delta Lake表数据
6.实现数据的“时间旅行”
7.追加(append)模式和覆写(overwrite)模式
8.overwriteSchema和mergeSchema
术语的中英文对照表
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜