万本电子书0元读

万本电子书0元读

顶部广告

Spark大数据开发与应用案例(视频教学版)电子书

(1)清华大学黄永峰教授、江铭虎教授郑重推荐。(2)《Spark大数据发与应用案例:视频教学版》系统讲解Spark3.5框架,全部内容都在培训机构长达8年的培训实践中,一遍一遍讲解过,一遍一遍实验过。(3)《Spark大数据发与应用案例:视频教学版》以通俗易懂的方式详解Spark原生态组件的基础与用法,每一章都结合大量的实战案例,讲解过程中注重知识的系统性和内容的实用性。(4)《Spark大数据发与应用案例:视频教学版》最后一章还给出Spark在大厂面试中经常问到的问题,精准覆盖工作中常见使用场景及互联网企业面试要,可以作为面试指南。(5)作者提供微信群答疑服务,读者在学习过程中碰到问题可以随时请教作者。(6)配套示例源码、PPT课件、集群环境、教学视频、配图PDF文件、作者微信群答疑服务。

售       价:¥

纸质售价:¥85.00购买纸书

0人正在读 | 0人评论 6.3

作       者:段海涛、杨忠良、余辉

出  版  社:清华大学出版社

出版时间:2025-10-01

字       数:32.0万

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

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

为你推荐

  • 读书简介
  • 目录
  • 累计评论(条)
  • 读书简介
  • 目录
  • 累计评论(条)
《Spark大数据发与应用案例:视频教学版》在培训机构的教学实践中历经8年锤炼而成,以简明清晰且易于理解的方式,全面覆盖Spark集群构建、SparkCore、SparkSQL、Spark实战案例以及面试问答等内容。为增强读者的学习体验,《Spark大数据发与应用案例:视频教学版》配套丰富的电子资源,包括示例源码、PPT教学课件、集群环境、教学视频以及作者微信群答疑服务。《Spark大数据发与应用案例:视频教学版》精心编排为15章,内容包括Spark简介、Spark集群环境部署、Spark编程体验、RDD深度解读、RDD的Shuffle详解、Spark共享变量、Spark序列化和线程安全、Spark内存管理机制、SparkSQL简介、SparkSQL抽象编程详解、SparkSQL自定义函数、SparkSQL源码解读、Spark性能调优、Spark实战案例、Spark面试题。《Spark大数据发与应用案例:视频教学版》不仅适合Spark初学者快速门,也有助于大数据分析人员及大数据应用发人员一步提升技能。同时,《Spark大数据发与应用案例:视频教学版》也可以作为高等院校或高职高专院校Spark大数据技术课程的教材。<br/>【推荐语】<br/>(1)清华大学黄永峰教授、江铭虎教授郑重推荐。(2)《Spark大数据发与应用案例:视频教学版》系统讲解Spark3.5框架,全部内容都在培训机构长达8年的培训实践中,一遍一遍讲解过,一遍一遍实验过。(3)《Spark大数据发与应用案例:视频教学版》以通俗易懂的方式详解Spark原生态组件的基础与用法,每一章都结合大量的实战案例,讲解过程中注重知识的系统性和内容的实用性。(4)《Spark大数据发与应用案例:视频教学版》最后一章还给出Spark在大厂面试中经常问到的问题,精准覆盖工作中常见使用场景及互联网企业面试要,可以作为面试指南。(5)作者提供微信群答疑服务,读者在学习过程中碰到问题可以随时请教作者。(6)配套示例源码、PPT课件、集群环境、教学视频、配图PDF文件、作者微信群答疑服务。<br/>【作者】<br/>段海涛,毕业于南京邮电大学,高级工程师。曾就职于中国移动、中国石油、亚信科技等。从事大数据行业10余年,海易牛科技(大数据平台发技术服务)和北京多易教育(大数据技术培训)创始人。为中国移动、用友软件、四方精创及多个城市的数据局等企业和单位提供过解决方案和技术咨询服务;为数千有志大数据发行业的大学生提供了就业培训服务。在多个互联网平台公Hadoop、Spark、Flink等大量培训视频,广受欢迎和好评。杨忠良,毕业于清华大学电子工程系,博士,北京邮电大学副研究员、博士生导师。长期从事人工智能、大数据分析等领域的研究。在国内外重要期刊和会议发表学术论文80余篇,多篇文章收录ESI高被引论文。主持或参与多项国家自然科学基金、国家重研发计划项目等,参与编撰教材1部。获得2024年中国通信学会科学技术二等奖,2021年ACMSIGWEBCHINA新星奖。余辉,毕业于中科院,硕士,中级工程师,大数据平台架构师。曾就职于京东金融、酷网络。从事大数据行业10余年,专注于大数据及机器学习领域。发表大数据相关论文3篇,发表软著10多个,授权专利30多个。著有《Hadoop+Spark生态系统与实战指南》。<br/>
目录展开

内容简介

编辑推荐

作者信息

清华大学黄永峰教授推荐序

清华大学江铭虎教授推荐序

前言

第1章 Spark简介

1.1 Spark概念及其特点

1.2 Spark技术生态系统

1.3 Spark运行模式

1.4 Spark执行流程

1.5 Spark专有名词

1.6 本章小结

第2章 Spark集群环境部署

2.1 VM虚拟机安装

2.2 Ubuntu 22.04系统安装

2.3 Ubuntu 22.04网络配置

2.4 Ubuntu 22.04环境配置

2.5 ZooKeeper安装

2.6 Hadoop安装

2.6.1 下载并解压

2.6.2 配置系统环境变量

2.6.3 配置核心文件

2.6.4 分发Hadoop

2.6.5 启动和验证

2.7 Spark安装

2.7.1 下载和解压

2.7.2 配置系统环境变量

2.7.3 配置核心文件

2.7.4 分发Spark

2.7.5 Spark启动及UI界面查看

2.7.6 spark-shell启动验证

2.8 集群和代码下载

2.9 本章小结

第3章 Spark编程体验

3.1 Scala基础编程

3.1.1 基本语法

3.1.2 函数和方法

3.1.3 控制语句

3.1.4 函数式编程

3.1.5 类和对象

3.1.6 Scala异常处理

3.1.7 Trait(特征)

3.1.8 Scala文件I/O

3.1.9 Scala练习题

3.2 Spark创建项目

3.3 Spark程序编写与运行方法

3.4 本章小结

第4章 RDD深度解读

4.1 RDD的概念及特点

4.1.1 RDD的特点

4.1.2 RDD的算子分类

4.1.3 RDD创建方法

4.2 RDD的血缘和依赖

4.2.1 血缘与依赖的概念

4.2.2 Dependency依赖关系

4.3 RDD的Transformation算子

4.4 RDD的Action算子

4.5 RDD的特殊算子

4.5.1 cache和persist

4.5.2 checkpoint

4.6 RDD转换算子的惰性

4.6.1 Scala迭代器Iterator接口

4.6.2 Scala迭代器Lazy特性及原理

4.7 模拟Spark自定义RDD

4.8 Spark任务执行原理图解分析

4.8.1 WordCount程序元素分解

4.8.2 WordCount程序图解

4.8.3 Stage和Task的类型

4.9 案例:多种算子实现WordCount

4.9.1 map + reduceByKey

4.9.2 countByValue

4.9.3 aggregateByKey或foldByKey

4.9.4 groupByKey+map

4.9.5 Scala原生实现wordCount

4.9.6 combineByKey

4.10 本章小结

第5章 RDD的Shuffle详解

5.1 Shuffle的概念及历史

5.1.1 Shuffle的概念

5.1.2 Shuffle演进的历史

5.2 Shuffle的验证及复用性

5.2.1 案例:reduceByKey一定会Shuffle吗

5.2.2 案例:join操作一定会触发Shuffle吗

5.2.3 Shuffle数据的复用实验

5.3 HashShuffleManager

5.3.1 HashShuffleManager优化前

5.3.2 HashShuffleManager优化后

5.4 SortShuffleManager

5.4.1 普通运行机制

5.4.2 Bypass运行机制

5.5 本章小结

第6章 Spark共享变量

6.1 广播变量

6.1.1 广播变量的使用场景

6.1.2 广播变量的实现原理

6.1.3 案例:两个集合进行结合

6.2 累加器

6.2.1 累加器使用场景

6.2.2 累加器实现原理

6.2.3 案例:自定义累加器

6.2.4 案例:不使用累加器的方案

6.2.5 案例:使用累加器的方法

6.3 本章小结

第7章 Spark序列化和线程安全

7.1 Spark序列化

7.1.1 序列化问题的场景

7.1.2 数据Bean未实现序列化接口

7.1.3 函数闭包及其示例

7.2 Task线程安全

7.2.1 线程不安全及其解决方案

7.2.2 避免线程不安全的示例

7.3 本章小结

第8章 Spark内存管理机制

8.1 内存管理概述

8.2 堆内内存和堆外内存的区别

8.3 堆内内存

8.4 堆外内存

8.5 本章小结

第9章 Spark SQL简介

9.1 Spark SQL的定义和特性

9.2 Spark SQL编程抽象

9.3 Spark SQL快速体验

9.3.1 程序使用示例

9.3.2 命令行使用示例

9.3.3 新的编程入口SparkSession

9.4 本章小结

第10章 Spark SQL抽象编程详解

10.1 DataFrame创建

10.1.1 使用RDD创建DataFrame

10.1.2 从结构化文件创建DataFrame

10.1.3 外部存储服务创建DataFrame

10.2 DataFrame运算

10.2.1 SQL风格操作

10.2.2 DSL风格API(TableApi)语法

10.3 DataFrame输出

10.3.1 输出控制台

10.3.2 输出文件

10.3.3 输出到RDBMS

10.3.4 输出到Hive

10.3.5 DataFrame输出时的分区操作

10.4 RDD代码和SQL代码混合编程

10.4.1 Dataset和DataFrame的区别及取数

10.4.2 由RDD创建DataFrame

10.4.3 由RDD创建Dataset

10.5 RDD、Dataset与DataFrame的互相转换

10.6 本章小结

第11章 Spark SQL自定义函数

11.1 用户自定义函数UDF

11.1.1 UDF函数的概念及其特点

11.1.2 UDF案例1:字符串处理

11.1.3 UDF案例2:GEOHASH算法

11.1.4 UDF案例3:余弦相似度算法

11.1.5 UDF注意事项

11.2 用户自定义聚合函数UDAF

11.2.1 UDAF的编程模板

11.2.2 UDAF原理讲解

11.2.3 弱类型用户自定义聚合函数

11.2.4 强类型用户自定义聚合函数

11.2.5 UDAF注意事项

11.3 本章小结

第12章 Spark SQL源码解读

12.1 Spark SQL的执行过程

12.2 元数据管理器SessionCatalog

12.3 SQL解析成逻辑执行计划

12.4 Analyzer绑定逻辑计划

12.5 Optimizer优化逻辑计划

12.5.1 谓词下推

12.5.2 列裁剪

12.5.3 常量替换

12.5.4 常量累加

12.6 使用SparkPlanner生成物理计划

12.7 从物理执行计划获取inputRdd执行

12.8 本章小结

第13章 Spark性能调优

13.1 Spark常规性能调优

13.1.1 常规性能调优一:最优资源配置

13.1.2 常规性能调优二:RDD优化

13.1.3 常规性能调优三:并行度调节

13.1.4 常规性能调优四:广播大变量

13.1.5 常规性能调优五:Kryo序列化

13.1.6 常规性能调优六:调节本地化等待时长

13.1.7 常规性能调优七:ShuGle调优

13.1.8 常规性能调优八:JVM调优

13.2 Spark开发原则优化

13.2.1 开发原则一:避免创建重复的RDD

13.2.2 开发原则二:避免创建重复的DataFrame

13.2.3 开发原则三:尽可能复用同一个RDD

13.2.4 开发原则四:避免重复性的SQL查询,对DataFrame复用

13.2.5 开发原则五:注意数据类型的使用

13.2.6 开发原则六:写出高质量的SQL

13.3 Spark调优方法

13.3.1 优化数据结构

13.3.2 使用缓存(Cache)

13.3.3 对配置属性进行调优

13.3.4 合理使用广播

13.3.5 尽量避免使用Shuffle算子

13.3.6 使用map-side预聚合的Shuffle操作

13.3.7 使用高性能算子

13.3.8 尽量在一次调用中处理一个分区的数据

13.3.9 对数据进行序列化

13.4 Spark数据倾斜调优

13.4.1 调整分区数目

13.4.2 去除多余的数据

13.4.3 使用广播将Reduce Join转换为Map Join

13.4.4 将key进行拆分,大数据转换为小数据

13.4.5 数据倾斜定位和解决

13.5 本章小结

第14章 Spark实战案例

14.1 Spark Core电影数据分析

14.1.1 表格及数据样例

14.1.2 连续登录超过3天的用户DSL风格

14.1.3 连续登录超过3天的用户SQL风格

14.1.4 电影统计DSL风格

14.1.5 电影统计SQL风格

14.1.6 电影统计运行结果

14.2 Spark Core日志数据分析

14.2.1 前期准备

14.2.2 统计PV和可视化

14.2.3 统计UV和可视化

14.2.4 统计TopN和可视化

14.3 Spark SQL电商数据分析

14.3.1 数据和表格说明

14.3.2 加载数据

14.3.3 计算每年的销售单数和销售总额

14.3.4 查询每年最大金额的订单及其金额

14.3.5 计算每年最畅销的货品

14.4 Spark SQL金融数据分析

14.4.1 数据准备

14.4.2 最大值和最小值

14.4.3 平均值

14.4.4 样本标准差和总体标准差

14.4.5 中位数

14.4.6 四分位数

14.5 本章小结

第15章 Spark面试题

15.1 Spark核心概念面试题

15.1.1 简述Spark是什么

15.1.2 简述Spark 3.0的特性

15.1.3 简述Spark生态系统有哪些组件

15.1.4 简述Spark的运行流程

15.1.5 简述Spark的主要功能与特性

15.1.6 简述Spark中RDD的Partitioner是如何决定的

15.1.7 简述SparkContext与SparkSession之间的区别是什么

15.1.8 简述Spark的几种运行模式

15.1.9 简述DAG为什么适合Spark

15.1.10 简述DAG如何划分Stage

15.2 Spark架构原理面试题

15.2.1 简述Spark SQL的执行原理

15.2.2 简述Spark SQL执行的流程

15.2.3 简述Spark相较于MapReduce的优势

15.2.4 简述RDD的宽依赖和窄依赖产生的原理

15.2.5 简述Stage的内部逻辑

15.2.6 简述为什么要根据宽依赖划分Stage

15.2.7 简述Spark on YARN运行过程

15.2.8 简述YARN Client与YARN Cluster的区别

15.2.9 简述Spark的YARN Cluster涉及的参数有哪些

15.2.10 简述Spark广播变量的实现和原理

15.3 Spark编程实践面试题

15.3.1 简述RDD是什么

15.3.2 简述对RDD机制的理解

15.3.3 简述RDD的宽依赖和窄依赖

15.3.4 简述RDD持久化原理是什么

15.3.5 简述RDD的容错机制

15.3.6 简述RDD的缓存级别

15.3.7 简述DAG中为什么要划分Stage

15.3.8 简述Spark SQL的数据倾斜解决方案

15.3.9 简述Spark SQL如何将数据写入Hive表

15.3.10 简述Spark SQL如何使用UDF

15.4 Spark性能调优面试题

15.4.1 简述Spark Checkpoint

15.4.2 简述Spark中Checkpoint和持久化机制的区别

15.4.3 简述Spark中的OOM问题

15.4.4 简述Spark程序执行时,如何修改默认Task执行个数

15.4.5 简述Spark Join操作的优化经验

15.4.6 简述Map Join的实现原理

15.4.7 简述Spark Shuffle在什么情况下会产生

15.4.8 简述Spark Shuffle会在哪些算子中出现

15.4.9 简述Spark中的Transform和Action

15.4.10 Spark的Job、Stage、Task如何划分

15.5 Spark实战应用面试题

15.5.1 简述Map和flatMap的区别

15.5.2 简述Map和mapPartition的区别

15.5.3 简述reduceByKey和groupByKey的区别

15.5.4 简述DataFrame的Cache和Persist的区别

15.5.5 简述reduceByKey和reduce的区别

15.5.6 简述Spark运行时并行度的设置

15.5.7 简述Spark解决了Hadoop的哪些问题

15.5.8 简述RDD、DataFrame、Dataset和DataStream的区别

15.5.9 简述Spark和MapReduce Shuffle的区别

15.5.10 简述RDD中reduceBykey与groupByKey哪个性能好

15.6 本章小结

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

发表评论

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

买过这本书的人还买过

读了这本书的人还在读

回顶部