注重体验与质量的电子书资源下载网站
分类于: 计算机基础 互联网 设计
简介
Spark技术内幕:深入解析Spark内核架构设计与实现原理 豆 0.0分
资源最后更新于 2020-03-29 02:08:19
作者:张安站
出版社:出版社机械工业出版社
出版日期:2015-09
文件格式: pdf
简介· · · · · ·
Spark是不断壮大的大数据分析解决方案家族中备受关注的新增成员。它不仅为分布式数据集的处理提供一个有效框架,而且以高效的方式处理分布式数据集。它支持实时处理、流处理和批处理,提供了AllinOne的统一解决方案,使得Spark极具竞争力。本书以源码为基础,深入分析Spark内核的设计理念和架构实现,系统讲解各个核心模块的实现,为性能调优、二次开发和系统运维提供理论支持;本文*后以项目实战的方式,系统讲解生产环境下Spark应用的开发、部署和性能调优。作者:张安站
目录
序
前言
致谢
联系方式
第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 小结