Spark SQL内核剖析 封面

Spark SQL内核剖析

评分 3.9
字数
376字
章节数
12
ISBN
9787121343148

标签

内容简介

《Spark SQL内核剖析》聚焦 Apache Spark 体系中负责结构化数据处理的 Spark SQL 子系统,以源码级别的视角拆解其整体架构与各内部模块的实现机制,是中文技术图书中较早系统讲解 Spark SQL 内核的作品。 全书共 11 章,内容大体分为四个部分。第一部分为背景与基础(第 1~2 章),回顾大数据与 Spark、关系模型与 SQL 语言的演进,并扼要介绍 RDD 编程模型以及 DataFrame 与 Dataset 的基本概念。第二部分讲 SQL 功能的实现阶段(第 3~6 章),以一个简单查询为例,串起“SQL 到 RDD”的完整执行链路,介绍 InternalRow、TreeNode、Expression 三大内部体系与内部数据类型系统,随后逐段剖析基于 ANTLR 的 SQL 解析器、逻辑计划(LogicalPlan)的生成与 Analyzer、Optimizer 优化规则,以及物理计划(PhysicalPlan)与常见 Strategy 的生成过程。第三部分是专题展开(第 7~10 章),重点讲解 Aggregation 与 Join 两类核心算子的实现,深入分析 Tungsten 项目中的内存管理与代码生成等优化技术,并说明 Spark SQL 连接 Hive 的实现方式。第四部分为实践(第 11 章),结合生产环境的实际应用,分享系统改造与性能优化经验。 本书假定读者已具备一定的 Spark 使用经验与 SQL 基础,适合希望从“会用 API”进阶到“懂内部原理”的工程技术人员。

编辑推荐

讲 Spark 的书不少,讲 Spark SQL 内核的书很少。多数资料停留在 API 用法和架构示意图的层面,一旦遇到执行慢、数据倾斜、计划不理想的问题,就只能凭经验试参数。这本书的价值在于把“为什么”讲清楚了:一条 SQL 从解析、绑定、逻辑优化到物理计划生成,再到算子执行和内存布局,每一步被拆成可以顺着源码读下去的链条。 它的结构安排比较克制。前两章只做背景与基础铺垫,熟悉 Spark 的读者可以直接跳到第 3 章;第 3~6 章用一个小案例把整条执行链路串起来,是全书的主干;第 7~10 章把 Aggregation、Join、Tungsten、Hive 连接分别做成专题深入;最后一章落到生产环境的改造与调优经验,避免了只读源码不接地气的问题。 需要提醒的是,本书出版于 2018 年,对应 Spark 2.x 时代的实现。Catalyst 的分阶段设计、InternalRow 与 Expression 体系、Tungsten 的内存管理与代码生成这些主干思想在后续版本中仍然延续,但具体的类名、接口和默认策略会随版本变化。把它当作“读懂执行链条的地图”,再对照手头版本的源码阅读,效果最好。

适合谁读

适合

  • 已能写 Spark SQL / DataFrame 代码、想弄清内部执行机制的中高级开发者
  • 需要排查 Spark SQL 作业性能问题、做执行计划调优的数据平台工程师
  • 从事查询引擎或数据库内核研发,想借鉴 Catalyst 与 Tungsten 设计的技术人员
  • 以 Spark 源码为研究对象的分布式计算方向研究生与研究人员

不适合

  • 刚开始学大数据、还没有写过 Spark 作业的零基础读者
  • 只想快速上手写 SQL、不关心内部实现的分析人员
  • 急需针对 Spark 3.x 新特性(AQE、新版本优化器)做专题学习的人

阅读建议

  1. 先读第 3 章把“SQL 到 RDD”的整体链路建立起来,再回头补第 1~2 章基础,效率更高。
  2. 对照自己使用的 Spark 版本源码同步阅读,遇到类名或流程差异以本机代码为准。
  3. 读第 7~9 章前先准备一个带聚合和多表 Join 的实际查询,用 explain 观察计划变化。
  4. 把第 11 章的实践经验用于自己的作业调优,形成“现象—计划—源码”三段式排查习惯。

出版社简介

电子工业出版社 中国 · 成立于 1982 年

电子工业出版社是一家以电子信息及相关领域为出版特色的综合性出版社。从库内三千余种图书来看,其出版方向覆盖编程设计、人工智能、计算机综合、财经、摄影与社科等门类,既关注技术前沿,也兼顾大众阅读。代表图书包括《因子投资:方法与实践》《x86汇编语言:从实模式到保护模式》《RISC-V开放架构设计之道》《人工智能:语音识别理解与实践》《相控阵雷达技术》《雷达目标特性》及《100个Go语言典型错误》等,多围绕技术方法与工程实践展开。作者资源方面,有石川、李忠、王晓波、大卫·帕特森、安德鲁·沃特曼、余子濠等中外作者。受公开资料所限,暂不展开更多出版特色。

目录

  1. 第1章 Spark SQL背景
  2. 第2章 Spark基础知识介绍
  3. 第3章 Spark SQL执行全过程概述
  4. 第4章 Spark SQL编译器Parser
  5. 第5章 Spark SQL逻辑计划(LogicalPlan)
  6. 第6章 Spark SQL物理计划(PhysicalPlan)
  7. 第7章 Spark SQL之Aggregation实现
  8. 第8章 Spark SQL之Join实现
  9. 第9章 Tungsten技术实现
  10. 第10章 Spark SQL连接Hive
  11. 第11章 Spark SQL开发与实践
  12. 参考文献

常见问题

这本书讲的是哪个版本的 Spark?
本书 2018 年出版,内容基于 Spark 2.x 时代的实现,书中源码分析与类名均对应那一时期。后续版本中 Catalyst 的整体流程、Expression 体系与 Tungsten 思路仍基本延续,但具体实现与默认策略有变化,建议对照自己所用版本的源码阅读。
没有 Spark 基础能直接看吗?
不建议。作者在前言中明确说明,本书不展开讲解 RDD、调度等 Spark 基础知识,默认读者已熟悉 Spark 使用并具备 SQL 基础。完全没有经验的读者最好先通过官方文档或其他入门书补齐基础再读。
为什么目录没有列出全部小节?
本书章节下设大量小节(如 InternalRow 体系、TreeNode 体系、Analyzer 机制、Optimizer 规则体系等),层级较深。这里只列出章级目录,方便把握全书结构,具体小节可在书内或出版社页面的完整目录中查看。
读了它能解决线上 Spark SQL 慢的问题吗?
能提供判断依据而非现成答案。书中对逻辑计划优化规则、物理计划选择、Aggregation 与 Join 实现以及 Tungsten 内存与代码生成的剖析,能帮助理解执行计划为何如此生成;第 11 章还分享了生产环境的改造与调优经验,但具体调参仍需结合自身数据特征。
这本书和一般 Spark 入门书有什么区别?
一般 Spark 图书以 API 使用和框架介绍为主,覆盖面广而不深;本书不重复 Spark 基础,专注 Spark SQL 一个子系统的内核实现,大量内容直接对应源码逻辑,定位是帮助读者从“会用”走向“懂原理”。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

作者简介

黄明 作者 · 中国 · 1961

黄明,1961年7月生,浙江定海人,大连交通大学软件学院教授、博士生导师,研究方向为企业信息化与计算机管理信息系统。他长期主编全国计算机等级考试辅导用书及高校计算机、信息系统类教材。库内现收录其作品一种,即《呼吸道感染中西医防治康问答》,常见分类为健康。就这一种作品而言,作者将计算机与信息系统领域的教研经验转向健康科普,以问答形式梳理呼吸道感染在中西医防治与康复方面的知识,便于读者按需查阅。由于公开资料有限,其健康类写作的整体面貌与影响尚难充分评估。

同一作者

同类高分