Spark技术内幕:深入解析Spark内核架构设计与实现原理

Spark技术内幕:深入解析Spark内核架构设计与实现原理

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

以源码为基础,深入分析Spark内核的设计理念和架构实现。

内容简介

Spark是不断壮大的大数据分析解决方案家族中备受关注的新增成员。它不仅为分布式数据集的处理提供一个有效框架,而且以高效的方式处理分布式数据集。它支持实时处理、流处理和批处理,提供了All in One的统一解决方案,使得Spark极具竞争力。本书系统讲解各个核心模块的实现,为性能调优、二次开发和系统运维提供理论支持;本文最后以项目实战的方式,系统讲解生产环境下Spark应用的开发、部署和性能调优。

作者简介

作者张安站,EMC中国卓越研发集团的资深工程师,毕业于南开大学,毕业后加入EMC。

章节目录

版权信息

前言

第1章 Spark简介

1.1 Spark的技术背景

1.2 Spark的优点

1.3 Spark架构综述

1.4 Spark核心组件概述

1.4.1 Spark Streaming

1.4.2 MLlib

1.4.3 Spark SQL

1.4.4 GraphX

1.5 Spark的整体代码结构规模

第2章 Spark学习环境的搭建

2.1 源码的获取与编译

2.1.1 源码获取

2.1.2 源码编译

2.2 构建Spark的源码阅读环境

2.3 小结

第3章 RDD实现详解

3.1 概述

3.2 什么是RDD

3.2.1 RDD的创建

3.2.2 RDD的转换

3.2.3 RDD的动作

3.2.4 RDD的缓存

3.2.5 RDD的检查点

3.3 RDD的转换和DAG的生成

3.3.1 RDD的依赖关系

3.3.2 DAG的生成

3.3.3 Word Count的RDD转换和DAG划分的逻辑视图

3.4 RDD的计算

3.4.1 Task简介

3.4.2 Task的执行起点

3.4.3 缓存的处理

3.4.4 checkpoint的处理

3.4.5 RDD的计算逻辑

3.5 RDD的容错机制

3.6 小结

第4章 Scheduler模块详解

4.1 模块概述

4.1.1 整体架构

4.1.2 Scheduler的实现概述

4.2 DAGScheduler实现详解

4.2.1 DAGScheduler的创建

4.2.2 Job的提交

4.2.3 Stage的划分

4.2.4 任务的生成

4.3 任务调度实现详解

4.3.1 TaskScheduler的创建

4.3.2 Task的提交概述

4.3.3 任务调度具体实现

4.3.4 Task运算结果的处理

4.4 Word Count调度计算过程详解

4.5 小结

第5章 Deploy模块详解

5.1 Spark运行模式概述

5.1.1 local

5.1.2 Mesos

5.1.3 YARN

5.2 模块整体架构

5.3 消息传递机制详解

5.3.1 Master和Worker

5.3.2 Master和Client

5.3.3 Client和Executor

5.4 集群的启动

5.4.1 Master的启动

5.4.2 Worker的启动

5.5 集群容错处理

5.5.1 Master异常退出

5.5.2 Worker异常退出

5.5.3 Executor异常退出

5.6 Master HA实现详解

5.6.1 Master启动的选举和数据恢复策略

5.6.2 集群启动参数的配置

5.6.3 Curator Framework简介

5.6.4 ZooKeeperLeaderElectionAgent的实现

5.7 小结

第6章 Executor模块详解

6.1 Standalone模式的Executor分配详解

6.1.1 SchedulerBackend创建AppClient

6.1.2 AppClient向Master注册Application

6.1.3 Master根据AppClient的提交选择Worker

6.1.4 Worker根据Master的资源分配结果创建Executor

6.2 Task的执行

6.2.1 依赖环境的创建和分发

6.2.2 任务执行

6.2.3 任务结果的处理

6.2.4 Driver端的处理

6.3 参数设置

6.3.1 spark.executor.memory

6.3.2 日志相关

6.3.3 spark.executor.heartbeatInterval

6.4 小结

第7章 Shuffle模块详解

7.1 Hash Based Shuffle Write

7.1.1 Basic Shuffle Writer实现解析

7.1.2 存在的问题

7.1.3 Shuffle Consolidate Writer

7.1.4 小结

7.2 Shuffle Pluggable框架

7.2.1 org.apache.spark.shuffle.ShuffleManager

7.2.2 org.apache.spark.shuffle.ShuffleWriter

7.2.3 org.apache.spark.shuffle.ShuffleBlockManager

7.2.4 org.apache.spark.shuffle.ShuffleReader

7.2.5 如何开发自己的Shuffle机制

7.3 Sort Based Write

7.4 Shuffle Map Task运算结果的处理

7.4.1 Executor端的处理

7.4.2 Driver端的处理

7.5 Shuffle Read

7.5.1 整体流程

7.5.2 数据读取策略的划分

7.5.3 本地读取

7.5.4 远程读取

7.6 性能调优

7.6.1 spark.shuffle.manager

7.6.2 spark.shuffle.spill

7.6.3 spark.shuffle.memoryFraction和spark.shuffle.safetyFraction

7.6.4 spark.shuffle.sort.bypassMergeThreshold

7.6.5 spark.shuffle.blockTransferService

7.6.6 spark.shuffle.consolidateFiles

7.6.7 spark.shuffle.compress和spark.shuffle.spill.compress

7.6.8 spark.reducer.maxMbInFlight

7.7 小结

第8章 Storage模块详解

8.1 模块整体架构

8.1.1 整体架构

8.1.2 源码组织结构

8.1.3 Master和Slave的消息传递详解

8.2 存储实现详解

8.2.1 存储级别

8.2.2 模块类图

8.2.3 org.apache.spark.storage.DiskStore实现详解

8.2.4 org.apache.spark.storage.MemoryStore实现详解

8.2.5 org.apache.spark.storage.TachyonStore实现详解

8.2.6 Block存储的实现

8.3 性能调优

8.3.1 spark.local.dir

8.3.2 spark.executor.memory

8.3.3 spark.storage.memoryFraction

8.3.4 spark.streaming.blockInterval

8.4 小结

第9章 企业应用概述

9.1 Spark在百度

9.1.1 现状

9.1.2 百度开放云BMR的Spark

9.1.3 在Spark中使用Tachyon

9.2 Spark在阿里

9.3 Spark在腾讯

9.4 小结

Spark技术内幕:深入解析Spark内核架构设计与实现原理是2015年由机械工业出版社华章分社出版,作者张安站。

得书感谢您对《Spark技术内幕:深入解析Spark内核架构设计与实现原理》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
大数据技术基础——基于Hadoop与Spark 电子书
将Hadoop和Spark组合起来进行剖析,呈现完整的大数据技术方案。
Spark大数据技术与应用(微课版) 电子书
本书以初学者的角度详细介绍Spark架构的核心技术,主要围绕Spark的架构、Spark的开发语言、Spark模块的主要功能展开;以IDEA为主要开发工具,CentOS为运行环境,采用“理实一体化”授课模式。本书内容包括Spark导论,Spark环境搭建与使用,Scala语言,Spark弹性分布式数据集,SparkSQL、DataFrame和DataSet,Kafka分布式发布-订阅消息系统,Sp
Spark海量数据处理:技术详解与平台实战 电子书
在数字经济时代,数据是重要的资源要素;同时,新的数据又在源源不断地产生,企业面临的一个基本问题就是如何管理和利用这些数据,这对传统的数据处理方法与分析框架提出了新的诉求和挑战,也是全球业界与学界为关心的问题。为了满足大数据时代对信息的快速处理的需求,一个分布式的开源计算框架Apache Spark应运而生。经过十年的发展,Spark已经成为目前大数据处理的标杆,在整个业界得到了广泛的使用。对大数据工程师来说,用Spark构建数据管道无疑是很好的选择,而对数据科学家来说,Spark也是高效的数据探索工具。 本书基于Spark发行版2.4.4写作而成,包含大量的实例与一个完整项目,技术理论与实战相结合,层次分明,循序渐进。本书不仅介绍了如何开发Spark应用的基础内容,包括Spark架构、Spark编程、SparkSQL、Spark调优等,还探讨了Structured Streaming、Spark机器学习、Spark图挖掘、Spark深度学习、Alluxio系统等高级主题,同时完整实现了一个企业背景调查系统,借鉴了数据湖与Lambda架构的思想,涵盖了批处理、流处理应用开发,并加入了一些开源组件来满足业务需求。学习该系统可以使读者从实战中巩固所学,并将技术理论与应用实战融会贯通。 本书适合准备学习Spark的开发人员和数据分析师,以及准备将Spark应用到实际项目中的开发人员和管理人员阅读,也适合计算机相关专业的高年级本科生和研究生学习和参考,对于具有一定的Spark使用经验并想进一步提升的数据科学从业者也是很好的参考资料。
Spark编程基础(Scala版) 电子书
本书是厦门大学作者团队长期经验总结的结晶,是在厦门大学《大数据技术原理与应用》入门级大数据教材的基础之上编写的。为了确保教程质量,在编著出版纸质教材之前,实验室已经于2016年10月通过实验室官网免费发布共享了简化版的Spark在线教程和相关教学资源,同时,该在线教程也已经用于厦门大学计算机科学系研究生的大数据课程教学,并成为全国高校大数据课程教师培训交流班的授课内容。实验室根据读者对在线Spark教程的大量反馈意见以及教学实践中发现的问题,对Spark在线教程进行了多次修正和完善,所有这些前期准备工作,都为纸质教材的编著出版打下了坚实的基础。 披荆斩棘,在大数据丛林中开辟学习捷径 填沟削坎,为快速学习Spark 技术铺平道路 深入浅出,有效降低Spark 技术学习门槛 资源全面,构建全方位一站式在线服务体系
Spark编程基础(Python版) 电子书
本书以Python作为开发Spark应用程序的编程语言,介绍了Spark编程的基础知识。全书共8章,内容包括大数据技术概述、Spak的设计与运行原理、Spark环境搭建和使用方法、RDD编程、SparkSOL、SparkStreaming、StructuredStreaming和SparkMLlib等。