万本电子书0元读

万本电子书0元读

顶部广告

Spark大数据商业实战三部曲:内核解密|商业案例|性能调优(第2版)电子书

基于z新的Spark2.4.X版本,分为内核解密篇,商业案例篇,性能调优篇和Spark AI解密篇,共32章,学习过程中有任何疑问,可加QQ群418110145,有专业人员答疑解惑。

售       价:¥

纸质售价:¥246.70购买纸书

54人正在读 | 0人评论 6.2

作       者:王家林,段智华

出  版  社:清华大学出版社

出版时间:2020-06-01

字       数:70.7万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(6条)
  • 读书简介
  • 目录
  • 累计评论(6条)
本书基于 Spark 2.4.X版本,以 Spark商业案例实战和 Spark在生产环境下几乎所有类型的性能调优为核心,以 Spark内核解密为基石,对企业生产环境下的 Spark商业案例与性能调优抽丝剥茧地行剖析。全书共分 4篇,内核解密篇基于 Spark源码,从一个实战案例手,循序渐地全面解析 Spark 2.4.X版本的新特性及 Spark内核源码;商业案例篇选取 Spark发中*代表性的经典学习案例,在案例中综合介绍 Spark的大数据技术;性能调优篇覆盖 Spark在生产环境下的所有调优技术;Spark AI解密篇讲解深度学习实践、 Spark PyTorch案例实战、Spark TensorFlow实战以及 Spark上的深度学习内核解密。 本书适合所有 Spark学习者和从业人员使用。对于有分布式计算框架应用经验的人员,本书也可作为 Spark高手修炼的参考用书。本书还适合作为高等院校的大数据课程教材。<br/>【推荐语】<br/>基于z新的Spark2.4.X版本,分为内核解密篇,商业案例篇,性能调优篇和Spark AI解密篇,共32章,学习过程中有任何疑问,可加QQ群418110145,有专业人员答疑解惑。    <br/>【作者】<br/>王家林,Apache Spark执牛耳者现工作于硅谷的AI实验室,专注于NLP框架超过20本Spark、Al、Android书籍作者Toastmasters International Division Director GRE博士学考试连续两次满分获得者 段智华,就职于中国电信股份有限公司上海分公司,系统架构师,CSDN博客专家,专注于Spark大数据技术研发及推广,跟随Spark核心源码技术的发展,深研究Spark 2.1.1版本及Spark 2.2.0版本的源码优化,对Spark大数据处理、机器学习等技术有丰富的实战经验和浓厚兴趣。<br/>
目录展开

封面页

书名页

版权页

作者简介

内容简介

第2版前言

第1版前言

第1篇 内核解密篇

第1章 电光石火间体验Spark 2.4开发实战

1.1 通过RDD实战电影点评系统入门及源码阅读

1.1.1 Spark核心概念图解

1.1.2 通过RDD实战电影点评系统案例

1.2 通过DataFrame和DataSet实战电影点评系统

1.2.1 通过DataFrame实战电影点评系统案例

1.2.2 通过DataSet实战电影点评系统案例

1.3 Spark 2.4源码阅读环境搭建及源码阅读体验

第2章 Spark 2.4技术及原理

2.1 Spark 2.4综述

2.1.1 连续应用程序

2.1.2 新的API

2.2 Spark 2.4 Core

2.2.1 第二代Tungsten引擎

2.2.2 SparkSession

2.2.3 累加器API

2.3 Spark 2.4 SQL

2.3.1 Spark SQL

2.3.2 DataFrame和Dataset API

2.3.3 Timed Window

2.4 Spark 2.4 Streaming

2.4.1 Structured Streaming

2.4.2 增量输出模式

2.5 Spark 2.4 MLlib

2.5.1 基于DataFrame的Machine Learning API

2.5.2 R的分布式算法

2.6 Spark 2.4 GraphX

第3章 Spark的灵魂:RDD和DataSet

3.1 为什么说RDD和DataSet是Spark的灵魂

3.1.1 RDD的定义及五大特性剖析

3.1.2 DataSet的定义及内部机制剖析

3.2 RDD弹性特性7个方面解析

3.3 RDD依赖关系

3.3.1 窄依赖解析

3.3.2 宽依赖解析

3.4 解析Spark中的DAG逻辑视图

3.4.1 DAG生成的机制

3.4.2 DAG逻辑视图解析

3.5 RDD内部的计算机制

3.5.1 Task解析

3.5.2 计算过程深度解析

3.6 Spark RDD容错原理及其四大核心要点解析

3.6.1 Spark RDD容错原理

3.6.2 RDD容错的四大核心要点

3.7 Spark RDD中Runtime流程解析

3.7.1 Runtime架构图

3.7.2 生命周期

3.8 通过WordCount实战解析Spark RDD内部机制

3.8.1 Spark WordCount动手实践

3.8.2 解析RDD生成的内部机制

3.9 基于DataSet的代码如何转化为RDD

第4章 Spark Driver启动内幕剖析

4.1 Spark Driver Program剖析

4.1.1 Spark Driver Program

4.1.2 SparkContext深度剖析

4.1.3 SparkContext源码解析

4.2 DAGScheduler解析

4.2.1 DAG的定义

4.2.2 DAG的实例化

4.2.3 DAGScheduler划分Stage的原理

4.2.4 DAGScheduler划分Stage的具体算法

4.2.5 Stage内部Task获取最佳位置的算法

4.3 TaskScheduler解析

4.3.1 TaskScheduler原理剖析

4.3.2 TaskScheduler源码解析

4.4 SchedulerBackend解析

4.4.1 SchedulerBackend原理剖析

4.4.2 SchedulerBackend源码解析

4.4.3 Spark程序的注册机制

4.4.4 Spark程序对计算资源Executor的管理

4.5 打通Spark系统运行内幕机制循环流程

4.6 本章总结

第5章 Spark集群启动原理和源码详解

5.1 Master启动原理和源码详解

5.1.1 Master启动的原理详解

5.1.2 Master启动的源码详解

5.1.3 Master HA双机切换

5.1.4 Master的注册机制和状态管理解密

5.2 Worker启动原理和源码详解

5.2.1 Worker启动的原理流程

5.2.2 Worker启动的源码详解

5.3 ExecutorBackend启动原理和源码详解

5.3.1 ExecutorBackend接口与Executor的关系

5.3.2 ExecutorBackend的不同实现

5.3.3 ExecutorBackend中的通信

5.3.4 ExecutorBackend的异常处理

5.4 Executor中任务的执行

5.4.1 Executor中任务的加载

5.4.2 Executor中的任务线程池

5.4.3 任务执行失败处理

5.4.4 揭秘TaskRunner

5.5 Executor执行结果的处理方式

5.6 本章总结

第6章 Spark Application提交给集群的原理和源码详解

6.1 Spark Application是如何提交给集群的

6.1.1 Application提交参数配置详解

6.1.2 Application提交给集群原理详解

6.1.3 Application提交给集群源码详解

6.2 Spark Application是如何向集群申请资源的

6.2.1 Application申请资源的两种类型详解

6.2.2 Application申请资源的源码详解

6.3 从Application提交的角度重新审视Driver

6.3.1 Driver到底是什么时候产生的

6.3.2 Driver和Master交互原理解析

6.3.3 Driver和Master交互源码详解

6.4 从Application提交的角度重新审视Executor

6.4.1 Executor到底是什么时候启动的

6.4.2 Executor如何把结果交给Application

6.5 Spark 1.6 RPC内幕解密:运行机制、源码详解、Netty与Akka等

6.6 本章总结

第7章 Shuffle原理和源码详解

7.1 概述

7.2 Shuffle的框架

7.2.1 Shuffle的框架演进

7.2.2 Shuffle的框架内核

7.2.3 Shuffle框架的源码解析

7.2.4 Shuffle数据读写的源码解析

7.3 Hash Based Shuffle

7.3.1 概述

7.3.2 Hash Based Shuffle内核

7.3.3 Hash Based Shuffle数据读写的源码解析

7.4 Sorted Based Shuffle

7.4.1 概述

7.4.2 Sorted Based Shuffle内核

7.4.3 Sorted Based Shuffle数据读写的源码解析

7.5 Tungsten Sorted Based Shuffle

7.5.1 概述

7.5.2 Tungsten Sorted Based Shuffle内核

7.5.3 Tungsten Sorted Based Shuffle数据读写的源码解析

7.6 Shuffle与Storage模块间的交互

7.6.1 Shuffle注册的交互

7.6.2 Shuffle写数据的交互

7.6.3 Shuffle读数据的交互

7.6.4 BlockManager架构原理、运行流程图和源码解密

7.6.5 BlockManager解密进阶

7.7 本章总结

第8章 Job工作原理和源码详解

8.1 Job到底在什么时候产生

8.1.1 触发Job的原理和源码解析

8.1.2 触发Job的算子案例

8.2 Stage划分内幕

8.2.1 Stage划分原理详解

8.2.2 Stage划分源码详解

8.3 Task全生命周期详解

8.3.1 Task的生命过程详解

8.3.2 Task在Driver和Executor中交互的全生命周期原理和源码详解

8.4 Driver如何管理ShuffleMapTask和ResultTask的处理结果

8.4.1 ShuffleMapTask执行结果和Driver的交互原理及源码详解

8.4.2 ResultTask执行结果与Driver的交互原理及源码详解

第9章 Spark中Cache和checkpoint原理和源码详解

9.1 Spark中Cache原理和源码详解

9.1.1 Spark中Cache原理详解

9.1.2 Spark中Cache源码详解

9.2 Spark中checkpoint原理和源码详解

9.2.1 Spark中checkpoint原理详解

9.2.2 Spark中checkpoint源码详解

第10章 Spark中Broadcast和Accumulator原理和源码详解

10.1 Spark中Broadcast原理和源码详解

10.1.1 Spark中Broadcast原理详解

10.1.2 Spark中Broadcast源码详解

10.2 Spark中Accumulator原理和源码详解

10.2.1 Spark中Accumulator原理详解

10.2.2 Spark中Accumulator源码详解

第11章 Spark与大数据其他经典组件整合原理与实战

11.1 Spark组件综合应用

11.2 Spark与Alluxio整合原理与实战

11.2.1 Spark与Alluxio整合原理

11.2.2 Spark与Alluxio整合实战

11.3 Spark与Job Server整合原理与实战

11.3.1 Spark与Job Server整合原理

11.3.2 Spark与Job Server整合实战

11.4 Spark与Redis整合原理与实战

11.4.1 Spark与Redis整合原理

11.4.2 Spark与Redis整合实战

第2篇 商业案例篇

第12章 Spark商业案例之大数据电影点评系统应用案例

12.1 通过RDD实现分析电影的用户行为信息

12.1.1 搭建IDEA开发环境

12.1.2 大数据电影点评系统中电影数据说明

12.1.3 电影点评系统用户行为分析统计实战

12.2 通过RDD实现电影流行度分析

12.3 通过RDD分析各种类型的最喜爱电影TopN及性能优化技巧

12.4 通过RDD分析电影点评系统仿QQ和微信等用户群分析及广播背后机制解密

12.5 通过RDD分析电影点评系统实现Java和Scala版本的二次排序系统

12.5.1 二次排序自定义Key值类实现(Java)

12.5.2 电影点评系统二次排序功能实现(Java)

12.5.3 二次排序自定义Key值类实现(Scala)

12.5.4 电影点评系统二次排序功能实现(Scala)

12.6 通过Spark SQL中的SQL语句实现电影点评系统用户行为分析

12.7 通过Spark SQL下的两种不同方式实现口碑最佳电影分析

12.8 通过Spark SQL下的两种不同方式实现最流行电影分析

12.9 通过DataFrame分析最受男性和女性喜爱电影TopN

12.10 纯粹通过DataFrame分析电影点评系统仿QQ和微信、淘宝等用户群

12.11 纯粹通过DataSet对电影点评系统进行流行度和不同年龄阶段兴趣分析等

12.11.1 通过DataSet实现某特定电影观看者中男性和女性不同年龄的人数

12.11.2 通过DataSet方式计算所有电影中平均得分最高(口碑最好)的电影TopN

12.11.3 通过DataSet方式计算所有电影中粉丝或者观看人数最多(最流行电影)的电影TopN

12.11.4 纯粹通过DataSet的方式实现所有电影中最受男性、女性喜爱的电影Top10

12.11.5 纯粹通过DataSet的方式实现所有电影中QQ或者微信核心目标用户最喜爱电影TopN分析

12.11.6 纯粹通过DataSet的方式实现所有电影中淘宝核心目标用户最喜爱电影TopN分析

12.12 大数据电影点评系统应用案例涉及的核心知识点原理、源码及案例代码

12.12.1 知识点:广播变量Broadcast内幕机制

12.12.2 知识点:SQL全局临时视图及临时视图

12.12.3 大数据电影点评系统应用案例完整代码

12.13 本章总结

第13章 Spark 2.2实战之Dataset开发实战企业人员管理系统应用案例

13.1 企业人员管理系统应用案例业务需求分析

13.2 企业人员管理系统应用案例数据建模

13.3 通过SparkSession创建案例开发实战上下文环境

13.3.1 Spark 1.6.0版本SparkContext

13.3.2 Spark 2.0.0版本SparkSession

13.3.3 DataFrame、DataSet剖析与实战

13.4 通过map、flatMap、mapPartitions等分析企业人员管理系统

13.5 通过dropDuplicate、coalesce、repartition等分析企业人员管理系统

13.6 通过sort、join、joinWith等分析企业人员管理系统

13.7 通过randomSplit、sample、select等分析企业人员管理系统

13.8 通过groupBy、agg、col等分析企业人员管理系统

13.9 通过collect_list、collect_set等分析企业人员管理系统

13.10 通过avg、sum、countDistinct等分析企业人员管理系统

13.11 Dataset开发实战企业人员管理系统应用案例代码

13.12 本章总结

第14章 Spark商业案例之电商交互式分析系统应用案例

14.1 纯粹通过DataSet进行电商交互式分析系统中特定时段访问次数TopN

14.1.1 电商交互式分析系统数据说明

14.1.2 特定时段内用户访问电商网站排名TopN

14.2 纯粹通过DataSet分析特定时段购买金额Top10和访问次数增长Top10

14.3 纯粹通过DataSet进行电商交互式分析系统中各种类型TopN分析实战详解

14.3.1 统计特定时段购买金额最多的Top5用户

14.3.2 统计特定时段访问次数增长最多的Top5用户

14.3.3 统计特定时段购买金额增长最多的Top5用户

14.3.4 统计特定时段注册之后前两周内访问次数最多的Top10用户

14.3.5 统计特定时段注册之后前两周内购买总额最多的Top10用户

14.4 电商交互式分析系统应用案例涉及的核心知识点原理、源码及案例代码

14.4.1 知识点:Functions.scala

14.4.2 电商交互式分析系统应用案例完整代码

14.5 本章总结

第15章 Spark商业案例之NBA篮球运动员大数据分析系统应用案例

15.1 NBA篮球运动员大数据分析系统架构和实现思路

15.2 NBA篮球运动员大数据分析系统代码实战:数据清洗和初步处理

15.3 NBA篮球运动员大数据分析代码实战之核心基础数据项编写

15.3.1 NBA球员数据每年基础数据项记录

15.3.2 NBA球员数据每年标准分Z-Score计算

15.3.3 NBA球员数据每年归一化计算

15.3.4 NBA历年比赛数据按球员分组统计分析

15.3.5 NBA球员年龄值及经验值列表获取

15.3.6 NBA球员年龄值及经验值统计分析

15.3.7 NBA球员系统内部定义的函数、辅助工具类

15.4 NBA篮球运动员大数据分析完整代码测试和实战

15.5 NBA篮球运动员大数据分析系统应用案例涉及的核心知识点、原理、源码

15.5.1 知识点:StatCounter源码分析

15.5.2 知识点:StatCounter应用案例

15.6 本章总结

第16章 电商广告点击大数据实时流处理系统案例

16.1 电商广告点击综合案例需求分析和技术架构

16.1.1 电商广告点击综合案例需求分析

16.1.2 电商广告点击综合案例技术架构

16.1.3 电商广告点击综合案例整体部署

16.1.4 生产数据业务流程及消费数据业务流程

16.1.5 Spark JavaStreamingContext初始化及启动

16.1.6 Spark Streaming使用No Receivers方式读取Kafka数据及监控

16.2 电商广告点击综合案例在线点击统计实战

16.3 电商广告点击综合案例黑名单过滤实现

16.3.1 基于用户广告点击数据表及动态过滤黑名单用户

16.3.2 黑名单的整个RDD进行去重操作

16.3.3 将黑名单写入到黑名单数据表

16.4 电商广告点击综合案例底层数据层的建模和编码实现(基于MySQL)

16.4.1 电商广告点击综合案例数据库链接单例模式实现

16.4.2 电商广告点击综合案例数据库操作实现

16.5 电商广告点击综合案例动态黑名单过滤真正的实现代码

16.5.1 从数据库中获取黑名单封装成RDD

16.5.2 黑名单RDD和批处理RDD进行左关联及过滤掉黑名单

16.6 动态黑名单基于数据库MySQL的真正操作代码实战

16.6.1 MySQL数据库操作的架构分析

16.6.2 MySQL数据库操作的代码实战

16.7 通过updateStateByKey等实现广告点击流量的在线更新统计

16.8 实现每个省份点击排名Top5广告

16.9 实现广告点击Trend趋势计算实战

16.10 实战模拟点击数据的生成和数据表SQL的建立

16.10.1 电商广告点击综合案例模拟数据的生成

16.10.2 电商广告点击综合案例数据表SQL的建立

16.11 电商广告点击综合案例运行结果

16.11.1 电商广告点击综合案例Hadoop集群启动

16.11.2 电商广告点击综合案例Spark集群启动

16.11.3 电商广告点击综合案例Zookeeper集群启动

16.11.4 电商广告点击综合案例Kafka集群启动

16.11.5 电商广告点击综合案例Hive metastore集群启动

16.11.6 电商广告点击综合案例程序运行

16.11.7 电商广告点击综合案例运行结果

16.12 电商广告点击综合案例Scala版本关注点

16.13 电商广告点击综合案例课程的Java源码

16.14 电商广告点击综合案例课程的Scala源码

16.15 本章总结

第17章 Spark在通信运营商生产环境中的应用案例

17.1 Spark在通信运营商融合支付系统日志统计分析中的综合应用案例

17.1.1 融合支付系统日志统计分析综合案例需求分析

17.1.2 融合支付系统日志统计分析数据说明

17.1.3 融合支付系统日志清洗中Scala正则表达式与模式匹配结合的代码实战

17.1.4 融合支付系统日志在大数据Splunk中的可视化展示

17.1.5 融合支付系统日志统计分析案例涉及的正则表达式知识点及案例代码

17.2 Spark在光宽用户流量热力分布GIS系统中的综合应用案例

17.2.1 光宽用户流量热力分布GIS系统案例需求分析

17.2.2 光宽用户流量热力分布GIS应用的数据说明

17.2.3 光宽用户流量热力分布GIS应用Spark实战

17.2.4 光宽用户流量热力分布GIS应用Spark实战成果

17.2.5 光宽用户流量热力分布GIS应用Spark案例代码

17.3 本章总结

第18章 使用Spark GraphX实现婚恋社交网络多维度分析案例

18.1 Spark GraphX发展演变历史和在业界的使用案例

18.2 Spark GraphX设计实现的核心原理

18.3 Table Operator和Graph Operator

18.4 Vertices、edges和triplets

18.5 以最原始的方式构建Graph

18.6 第一个Graph代码实例并进行Vertices、edges和triplets操作实战

18.7 数据加载成为Graph并进行操作实战

18.8 图操作之Property Operators实战

18.9 图操作之Structural Operators实战

18.10 图操作之Computing Degree实战

18.11 图操作之Collecting Neighbors实战

18.12 图操作之Join Operators实战

18.13 图操作之aggregateMessages实战

18.14 图算法之Pregel API原理解析与实战

18.15 图算法之ShortestPaths原理解析与实战

18.16 图算法之PageRank原理解析与实战

18.17 图算法之TriangleCount原理解析与实战

18.18 使用Spark GraphX实现婚恋社交网络多维度分析实战

18.18.1 婚恋社交网络多维度分析实战图的属性演示

18.18.2 婚恋社交网络多维度分析实战图的转换操作

18.18.3 婚恋社交网络多维度分析实战图的结构操作

18.18.4 婚恋社交网络多维度分析实战图的连接操作

18.18.5 婚恋社交网络多维度分析实战图的聚合操作

18.18.6 婚恋社交网络多维度分析实战图的实用操作

18.19 婚恋社交网络多维度分析案例代码

18.20 本章总结

第3篇 性能调优篇

第19章 对运行在YARN上的Spark进行性能调优

19.1 运行环境Jar包管理及数据本地性原理调优实践

19.1.1 运行环境Jar包管理及数据本地性原理

19.1.2 运行环境Jar包管理及数据本地性调优实践

19.2 Spark on YARN两种不同的调度模型及其调优

19.2.1 Spark on YARN的两种不同类型模型优劣分析

19.2.2 Spark on YARN的两种不同类型调优实践

19.3 YARN队列资源不足引起的Spark应用程序失败的原因及调优方案

19.3.1 失败的原因剖析

19.3.2 调优方案

19.4 Spark on YARN模式下Executor经常被杀死的原因及调优方案

19.4.1 原因剖析

19.4.2 调优方案

19.5 YARN-Client模式下网卡流量激增的原因及调优方案

19.5.1 原因剖析

19.5.2 调优方案

19.6 YARN-Cluster模式下JVM栈内存溢出的原因及调优方案

19.6.1 原因剖析

19.6.2 调优方案

第20章 Spark算子调优最佳实践

20.1 使用mapPartitions或者mapPartitionWithIndex取代map操作

20.1.1 mapPartitions内部工作机制和源码解析

20.1.2 mapPartitionWithIndex内部工作机制和源码解析

20.1.3 使用mapPartitions取代map案例和性能测试

20.2 使用foreachPartition把Spark数据持久化到外部存储介质

20.2.1 foreachPartition内部工作机制和源码解析

20.2.2 使用foreachPartition写数据到MySQL中案例和性能测试

20.3 使用coalesce取代rePartition操作

20.3.1 coalesce和repartition工作机制和源码剖析

20.3.2 通过测试对比coalesce和repartition的性能

20.4 使用repartitionAndSortWithinPartitions取代repartition和sort的联合操作

20.4.1 repartitionAndSortWithinPartitions的工作原理和源码

20.4.2 repartitionAndSortWithinPartitions性能测试

20.5 使用treeReduce取代reduce的原理和源码

20.5.1 treeReduce进行reduce的工作原理和源码

20.5.2 使用treeReduce进行性能测试

20.6 使用treeAggregate取代Aggregate的原理和源码

20.6.1 treeAggregate进行Aggregate的工作原理和源码

20.6.2 使用treeAggregate进行性能测试

20.7 reduceByKey高效运行的原理和源码解密

20.8 使用AggregateByKey取代groupByKey的原理和源码

20.8.1 使用AggregateByKey取代groupByKey的工作原理

20.8.2 源码剖析

20.8.3 使用AggregateByKey取代groupByKey性能测试

20.9 Join不产生Shuffle的情况及案例实战

20.9.1 Join在什么情况下不产生Shuffle及其运行原理

20.9.2 Join不产生Shuffle的情况案例实战

20.10 RDD复用性能调优最佳实践

20.10.1 什么时候需要复用RDD

20.10.2 如何复用RDD算子

第21章 Spark频繁遇到的性能问题及调优技巧

21.1 使用BroadCast广播大变量和业务配置信息原理和案例实战

21.1.1 使用BroadCast广播大变量和业务配置信息原理

21.1.2 使用BroadCast广播大变量和业务配置信息案例实战

21.2 使用Kryo取代Scala默认的序列器原理和案例实战

21.2.1 使用Kryo取代Scala默认的序列器原理

21.2.2 使用Kryo取代Scala默认的序列器案例实战

21.3 使用FastUtil优化JVM数据格式解析和案例实战

21.3.1 使用FastUtil优化JVM数据格式解析

21.3.2 使用FastUtil优化JVM数据格式案例实战

21.4 Persist及checkpoint使用时的正误方式

21.5 序列化导致的报错原因解析和调优实战

21.5.1 报错原因解析

21.5.2 调优实战

21.6 算子返回NULL产生的问题及解决办法

第22章 Spark集群资源分配及并行度调优最佳实践

22.1 实际生产环境下每个Executor内存及CPU的具体配置及原因

22.1.1 内存的具体配置及原因

22.1.2 实际生产环境下一般每个Executor的CPU的具体配置及原因

22.2 Spark并行度设置最佳实践

22.2.1 并行度设置的原理和影响因素

22.2.2 并行度设置最佳实践

第23章 Spark集群中Mapper端、Reducer端内存调优

23.1 Spark集群中Mapper端内存调优实战

23.1.1 内存使用详解

23.1.2 内存性能调优实战

23.2 Spark集群中Reducer端内存调优实战

23.2.1 内存使用详解

23.2.2 内存性能调优实战

第24章 使用Broadcast实现Mapper端Shuffle聚合功能的原理和调优实战

24.1 使用Broadcast实现Mapper端Shuffle聚合功能的原理

24.2 使用Broadcast实现Mapper端Shuffle聚合功能调优实战

第25章 使用Accumulator高效地实现分布式集群全局计数器的原理和调优案例

25.1 Accumulator内部工作原理

25.2 Accumulator自定义实现原理和源码解析

25.3 Accumulator作全局计数器案例实战

第26章 Spark下JVM性能调优最佳实践

26.1 JVM内存架构详解及调优

26.1.1 JVM的堆区、栈区、方法区等详解

26.1.2 JVM线程引擎及内存共享区域详解

26.1.3 JVM中年轻代和老年代及元空间原理详解

26.1.4 JVM进行GC的具体工作流程详解

26.1.5 JVM常见调优参数详解

26.2 Spark中对JVM使用的内存原理图详解及调优

26.2.1 Spark中对JVM使用的内存原理图说明

26.2.2 Spark中对JVM使用的内存原理图内幕详解

26.2.3 Spark下常见的JVM内存调优参数最佳实践

26.3 Spark下JVM的On-Heap和Off-Heap解密

26.3.1 JVM的On-Heap和Off-Heap详解

26.3.2 Spark是如何管理JVM的On-Heap和Off-Heap的

26.3.3 Spark下JVM的On-Heap和Off-Heap调优最佳实践

26.4 Spark下JVM GC导致的Shuffle拉取文件失败及调优方案

26.4.1 Spark下JVM GC导致的Shuffle拉取文件失败原因解密

26.4.2 Spark下JVM GC导致的Shuffle拉取文件失败时调优

26.5 Spark下Executor对JVM堆外内存连接等待时长调优

26.5.1 Executor对堆外内存等待工作过程

26.5.2 Executor对堆外内存等待时长调优

26.6 Spark下JVM内存降低Cache内存占比的调优

26.6.1 什么时候需要降低Cache的内存占用

26.6.2 降低Cache的内存占比调优最佳实践

第27章 Spark五大子框架调优最佳实践

27.1 Spark SQL调优原理及调优最佳实践

27.1.1 Spark SQL调优原理

27.1.2 Spark SQL调优参数及调优最佳实践

27.2 Spark Streaming调优原理及调优最佳实践

27.2.1 Spark Streaming调优原理

27.2.2 Spark Streaming调优参数及调优最佳实践

27.3 Spark GraphX调优原理及调优最佳实践

27.3.1 Spark GraphX调优原理

27.3.2 Spark GraphX调优参数及调优最佳实践

27.4 Spark ML调优原理及调优最佳实践

27.4.1 Spark ML调优原理

27.4.2 Spark ML调优参数及调优最佳实践

27.5 SparkR调优原理及调优最佳实践

27.5.1 SparkR调优原理

27.5.2 SparkR调优参数及调优最佳实践

第28章 Spark 2.2.0新一代钨丝计划优化引擎

28.1 概 述

28.2 内存管理与二进制处理

28.2.1 概述

28.2.2 内存管理的模型及其实现类的解析

28.2.3 二进制处理及其实现类的解析

28.3 缓存感知计算

28.3.1 概述

28.3.2 缓存感知计算的解析

28.3.3 缓存感知计算类的解析

28.4 代码生成

28.4.1 概述

28.4.2 新型解析器的解析

28.4.3 代码生成的解析

28.4.4 表达式代码生成的应用解析

28.5 本章总结

第29章 Spark Shuffle调优原理及实践

29.1 Shuffle对性能消耗的原理详解

29.2 Spark.Shuffle.manager参数调优原理及实践

29.3 Spark.Shuffle.blockTransferService参数调优原理及实践

29.4 Spark.Shuffle.compress参数调优原理及实践

29.5 Spark.io.compression.codec参数调优原理及实践

29.6 Spark.Shuffle.consolidateFiles参数调优原理及实践

29.7 Spark.Shuffle.file.buffer参数调优原理及实践

29.8 Spark.Shuffle.io.maxRetries参数调优原理及实践

29.9 Spark.Shuffle.io.retryWait参数调优原理及实践

29.10 Spark.Shuffle.io.numConnectionsPerPeer参数调优原理及实践

29.11 Spark.reducer.maxSizeInFlight参数调优原理及实践

29.12 Spark.Shuffle.io.preferDirectBufs参数调优原理及实践

29.13 Spark.Shuffle.memoryFraction参数调优原理及实践

29.14 Spark.Shuffle.service.enabled参数调优原理及实践

29.15 Spark.Shuffle.service.port参数调优原理及实践

29.16 Spark.Shuffle.Sort.bypassMergeThreshold参数调优原理及实践

29.17 Spark.Shuffle.spill参数调优原理及实践

29.18 Spark.Shuffle.spill.compress参数调优原理及实践

第30章 Spark性能调优之数据倾斜调优一站式解决方案原理与实战

30.1 为什么数据倾斜是分布式大数据系统的性能噩梦

30.1.1 什么是数据倾斜

30.1.2 数据倾斜对性能的巨大影响

30.1.3 如何判断Spark程序运行中出现了数据倾斜

30.1.4 如何定位数据倾斜

30.2 数据倾斜解决方案之一:对源数据进行聚合并过滤掉导致倾斜的Keys

30.2.1 适用场景分析

30.2.2 原理剖析

30.2.3 使用Hive等ETL工具对源数据进行聚合并过滤掉导致倾斜的Keys

30.2.4 使用Spark SQL对源数据进行聚合并过滤掉导致倾斜的Keys

30.3 数据倾斜解决方案之二:适当提高Reducer端的并行度

30.3.1 适用场景分析

30.3.2 原理剖析

30.3.3 案例实战

30.3.4 注意事项

30.4 数据倾斜解决方案之三:使用随机Key实现双重聚合

30.4.1 什么是随机Key双重聚合

30.4.2 适用场景分析

30.4.3 原理剖析

30.4.4 案例实战

30.4.5 注意事项

30.5 数据倾斜解决方案之四:使用Mapper端进行Join操作

30.5.1 为什么要在Mapper端进行Join操作

30.5.2 适用场景分析

30.5.3 原理剖析

30.5.4 案例实战

30.5.5 注意事项

30.6 数据倾斜解决方案之五:对倾斜的Keys采样后进行单独的Join操作

30.6.1 为什么对倾斜的Keys采样后进行单独的Join操作

30.6.2 如何对倾斜的Keys进行采样

30.6.3 适用场景分析

30.6.4 案例实战

30.6.5 注意事项

30.7 数据倾斜解决方案之六:使用随机数进行Join

30.7.1 如何使用随机数

30.7.2 适用场景分析

30.7.3 案例实战

30.7.4 注意事项

30.8 数据倾斜解决方案之七:通过扩容进行Join

30.8.1 如何进行扩容

30.8.2 适用场景分析

30.8.3 案例实战

30.8.4 注意事项

30.9 结合电影点评系统进行数据倾斜解决方案的小结

第31章 Spark大数据性能调优实战专业之路

31.1 大数据性能调优的本质和Spark性能调优要点分析

31.2 Spark性能调优之系统资源使用原理和调优最佳实践

31.3 Spark性能调优之使用更高性能算子及其源码剖析

31.4 Spark旧版本中性能调优之HashShuffle剖析及调优

31.5 Shuffle如何成为Spark性能杀手

31.6 Spark Hash Shuffle源码解读与剖析

31.7 Sort-Based Shuffle产生的内幕及其tungsten-sort背景解密

31.8 Spark Shuffle令人费解的6大经典问题

31.9 Spark Sort-Based Shuffle排序具体实现内幕和源码详解

31.10 Spark 1.6.X以前Shuffle中JVM内存使用及配置内幕详情

31.11 Spark 2.4.X下Shuffle中内存管理源码解密:StaticMemory和UnifiedMemory

31.12 Spark 2.4.X下Shuffle中JVM Unified Memory内幕详情

31.13 Spark 2.4.X下Shuffle中Task视角内存分配管理

31.14 Spark 2.4.X下Shuffle中Mapper端的源码实现

31.15 Spark 2.4.X下Shuffle中SortShuffleWriter排序源码内幕解密

31.16 Spark 2.4.X下Sort Shuffle中timSort排序源码具体实现

31.17 Spark 2.4.X下Sort Shuffle中Reducer端的源码内幕

第4篇 Spark+AI解密篇

第32章 Apache Spark+深度学习实战及内幕解密

32.1 深度学习动手实践

32.1.1 人工智能下的深度学习

32.1.2 深度学习数据预处理

32.1.3 单节点深度学习训练

32.1.4 分布式深度学习训练

32.2 Spark+PyTorch案例实战

32.2.1 PyTorch在Spark上的安装

32.2.2 使用PyTorch实战图像识别

32.2.3 PyTorch性能调优最佳实践

32.3 Spark+TensorFlow实战

32.3.1 TensorFlow在Spark上的安装

32.3.2 TensorBoard解密

32.3.3 Spark-TensorFlow的数据转换

32.4 Spark上的深度学习内核解密

32.4.1 使用TensorFlow进行图片的分布式处理

32.4.2 数据模型源码剖析

32.4.3 逻辑节点源码剖析

32.4.4 构建索引源码剖析

32.4.5 深度学习下的Spark作业源码剖析

32.4.6 性能调优最佳实践

累计评论(6条) 9个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部