图书介绍

深入理解Spark 核心思想与源码分析PDF|Epub|txt|kindle电子书版本网盘下载

深入理解Spark 核心思想与源码分析
  • 耿嘉安著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111522348
  • 出版时间:2016
  • 标注页数:470页
  • 文件大小:38MB
  • 文件页数:484页
  • 主题词:数据处理软件

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

深入理解Spark 核心思想与源码分析PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

准备篇2

第1章 环境准备2

1.1 运行环境准备2

1.1.1 安装JDK3

1.1.2 安装Scala3

1.1.3 安装Spark4

1.2 Spark初体验4

1.2.1 运行spark-shell4

1.2.2 执行word count5

1.2.3 剖析spark-shell7

1.3 阅读环境准备11

1.4 Spark源码编译与调试13

1.5 小结17

第2章 Spark设计理念与基本架构18

2.1 初识Spark18

2.1.1 Hadoop MRv1的局限18

2.1.2 Spark使用场景20

2.1.3 Spark的特点20

2.2 Spark基础知识20

2.3 Spark基本设计思想22

2.3.1 Spark模块设计22

2.3.2 Spark模型设计24

2.4 Spark基本架构25

2.5 小结26

核心设计篇28

第3章 SparkContext的初始化28

3.1 SparkContext概述28

3.2 创建执行环境SparkEnv30

3.2.1 安全管理器SecurityManager31

3.2.2 基于Akka的分布式消息系统ActorSystem31

3.2.3 map任务输出跟踪器mapOutputTracker32

3.2.4 实例化ShuffleManager34

3.2.5 shuffle线程内存管理器ShuffleMemoryManager34

3.2.6 块传输服务BlockTransferService35

3.2.7 BlockManagerMaster介绍35

3.2.8 创建块管理器BlockManager36

3.2.9 创建广播管理器Broadcast-Manager36

3.2.10 创建缓存管理器CacheManager37

3.2.11 HTTP文件服务器HttpFile-Server37

3.2.12 创建测量系统MetricsSystem39

3.2.13 创建SparkEnv40

3.3 创建metadataCleaner41

3.4 SparkUI详解42

3.4.1 listenerBus详解43

3.4.2 构造JobProgressListener46

3.4.3 SparkUI的创建与初始化47

3.4.4 Spark UI的页面布局与展示49

3.4.5 SparkUI的启动54

3.5 Hadoop相关配置及Executor环境变量54

3.5.1 Hadoop相关配置信息54

3.5.2 Executor环境变量54

3.6 创建任务调度器TaskScheduler55

3.6.1 创建TaskSchedulerImpl55

3.6.2 TaskSchedulerImpl的初始化57

3.7 创建和启动DAGScheduler57

3.8 TaskScheduler的启动60

3.8.1 创建LocalActor60

3.8.2 ExecutorSource的创建与注册62

3.8.3 ExecutorActor的构建与注册64

3.8.4 Spark自身ClassLoader的创建64

3.8.5 启动Executor的心跳线程66

3.9 启动测量系统MetricsSystem69

3.9.1 注册Sources70

3.9.2 注册Sinks70

3.9.3 给Sinks增加Jetty的Servlet-ContextHandler71

3.10 创建和启动ExecutorAllocation-Manager72

3.11 ContextCleaner的创建与启动73

3.12 Spark环境更新74

3.13 创建DAGSchedulerSource和BlockManagerSource76

3.14 将SparkContext标记为激活77

3.15 小结78

第4章 存储体系79

4.1 存储体系概述79

4.1.1 块管理器BlockManager的实现79

4.1.2 Spark存储体系架构81

4.2 shuffle服务与客户端83

4.2.1 Block的RPC服务84

4.2.2 构造传输上下文Transpor-tContext85

4.2.3 RPC客户端工厂Transport-ClientFactory86

4.2.4 Netty服务器TransportServer87

4.2.5 获取远程shuffle文件88

4.2.6 上传shuffle文件89

4.3 BlockManagerMaster对Block-Manager的管理90

4.3.1 BlockManagerMasterActor90

4.3.2 询问Driver并获取回复方法92

4.3.3 向BlockManagerMaster注册BlockManagerld93

4.4 磁盘块管理器DiskBlockManager94

4.4.1 DiskBlockManager的构造过程94

4.4.2 获取磁盘文件方法getFile96

4.4.3 创建临时Block方法create-TempShuffleBlock96

4.5 磁盘存储DiskStore97

4.5.1 NIO读取方法getBytes97

4.5.2 NIO写入方法putBytes98

4.5.3 数组写入方法putArray98

4.5.4 Iterator写入方法putIterator98

4.6 内存存储MemoryStore99

4.6.1 数据存储方法putBytes101

4.6.2 Iterator写入方法putIterator详解101

4.6.3 安全展开方法unrollSafely102

4.6.4 确认空闲内存方法ensureFree-Space105

4.6.5 内存写入方法putArray107

4.6.6 尝试写入内存方法tryToPut108

4.6.7 获取内存数据方法getBytes109

4.6.8 获取数据方法getValues110

4.7 Tachyon存储TachyonStore110

4.7.1 Tachyon简介111

4.7.2 TachyonStore的使用112

4.7.3 写入Tachyon内存的方法putIntoTachyonStore113

4.7.4 获取序列化数据方法getBytes113

4.8 块管理器BlockManager114

4.8.1 移出内存方法dropFrom-Memory114

4.8.2 状态报告方法reportBlockStatus116

4.8.3 单对象块写入方法putSingle117

4.8.4 序列化字节块写入方法putBytes118

4.8.5 数据写入方法doPut118

4.8.6 数据块备份方法replicate121

4.8.7 创建DiskBlockObjectWriter的方法getDiskWriter125

4.8.8 获取本地Block数据方法getBlockData125

4.8.9 获取本地shuffle数据方法doGetLocal126

4.8.10 获取远程Block数据方法doGetRemote127

4.8.11 获取Block数据方法get128

4.8.12 数据流序列化方法dataSerializeStream129

4.9 metadataCleaner和broadcast-Cleaner129

4.10 缓存管理器CacheManager130

4.11 压缩算法133

4.12 磁盘写入实现DiskBlockObject-Writer133

4.13 块索引shuffle管理器Index-ShuffleBlockManager135

4.14 shuffle内存管理器Shuffle-MemoryManager137

4.15 小结138

第5章 任务提交与执行139

5.1 任务概述139

5.2 广播Hadoop的配置信息142

5.3 RDD转换及DAG构建144

5.3.1 为什么需要RDD144

5.3.2 RDD实现分析146

5.4 任务提交152

5.4.1 任务提交的准备152

5.4.2 finalStage的创建与Stage的划分157

5.4.3 创建Job163

5.4.4 提交Stage164

5.4.5 提交Task165

5.5 执行任务176

5.5.1 状态更新176

5.5.2 任务还原177

5.5.3 任务运行178

5.6 任务执行后续处理179

5.6.1 计量统计与执行结果序列化179

5.6.2 内存回收180

5.6.3 执行结果处理181

5.7 小结187

第6章 计算引擎188

6.1 迭代计算188

6.2 什么是shuffle192

6.3 map端计算结果缓存处理194

6.3.1 map端计算结果缓存聚合195

6.3.2 map端计算结果简单缓存200

6.3.3 容量限制201

6.4 map端计算结果持久化204

6.4.1 溢出分区文件205

6.4.2 排序与分区分组207

6.4.3 分区索引文件209

6.5 reduce端读取中间计算结果210

6.5.1 获取map任务状态213

6.5.2 划分本地与远程Block215

6.5.3 获取远程Block217

6.5.4 获取本地Block218

6.6 reduce端计算219

6.6.1 如何同时处理多个map任务的中间结果219

6.6.2 reduce端在缓存中对中间计算结果执行聚合和排序220

6.7 map端与reduce端组合分析221

6.7.1 在map端溢出分区文件,在reduce端合并组合221

6.7.2 在map端简单缓存、排序分组,在reduce端合并组合222

6.7.3 在map端缓存中聚合、排序分组,在reduce端组合222

6.8 小结223

第7章 部署模式224

7.1 local部署模式225

7.2 local-cluster部署模式225

7.2.1 LocalSparkCluster的启动226

7.2.2 CoarseGrainedSchedulerBackend的启动236

7.2.3 启动AppClient237

7.2.4 资源调度242

7.2.5 local-cluster模式的任务执行253

7.3 Standalone部署模式255

7.3.1 启动Standalone模式255

7.3.2 启动Master分析257

7.3.3 启动Worker分析259

7.3.4 启动Driver Application分析261

7.3.5 Standalone模式的任务执行263

7.3.6 资源回收263

7.4 容错机制266

7.4.1 Executor异常退出266

7.4.2 Worker异常退出268

7.4.3 Master异常退出269

7.5 其他部署方案276

7.5.1 YARN277

7.5.2 Mesos280

7.6 小结282

扩展篇284

第8章 Spark SQL284

8.1 Spark SQL总体设计284

8.1.1 传统关系型数据库SQL运行原理285

8.1.2 Spark SQL运行架构286

8.2 字典表Catalog288

8.3 Tree和TreeNode289

8.4 词法解析器Parser的设计与实现293

8.4.1 SQL语句解析的入口294

8.4.2 建表语句解析器DDLParser295

8.4.3 SQL语句解析器SqlParser296

8.4.4 Spark代理解析器SparkSQL-Parser299

8.5 Rule和RuleExecutor300

8.6 Analyzer与Optimizer的设计与实现302

8.6.1 语法分析器Analyzer304

8.6.2 优化器Optimizer305

8.7 生成物理执行计划306

8.8 执行物理执行计划308

8.9 Hive311

8.9.1 Hive SQL语法解析器311

8.9.2 Hive SQL元数据分析313

8.9.3 Hive SQL物理执行计划314

8.10 应用举例:JavaSparkSQL314

8.11 小结320

第9章 流式计算321

9.1 Spark Streaming总体设计321

9.2 StreamingContext初始化323

9.3 输入流接收器规范Receiver324

9.4 数据流抽象DStream325

9.4.1 Dstream的离散化326

9.4.2 数据源输入流InputDStream327

9.4.3 Dstream转换及构建DStreamGraph329

9.5 流式计算执行过程分析330

9.5.1 流式计算例子CustomReceiver331

9.5.2 Spark Streaming执行环境构建335

9.5.3 任务生成过程347

9.6 窗口操作355

9.7 应用举例357

9.7.1 安装mosquitto358

9.7.2 启动mosquitto358

9.7.3 MQTTWordCount359

9.8 小结361

第10章 图计算362

10.1 Spark GraphX总体设计362

10.1.1 图计算模型363

10.1.2 属性图365

10.1.3 GraphX的类继承体系367

10.2 图操作368

10.2.1 属性操作368

10.2.2 结构操作368

10.2.3 连接操作369

10.2.4 聚合操作370

10.3 Pregel API371

10.3.1 Dijkstra算法373

10.3.2 Dijkstra的实现376

10.4 Graph的构建377

10.4.1 从边的列表加载Graph377

10.4.2 在Graph中创建图的方法377

10.5 顶点集合抽象VertexRDD378

10.6 边集合抽象EdgeRDD379

10.7 图分割380

10.8 常用算法382

10.8.1 网页排名382

10.8.2 Connected Components的应用386

10.8.3 三角关系统计388

10.9 应用举例390

10.10 小结391

第11章 机器学习392

11.1 机器学习概论392

11.2 Spark MLlib总体设计394

11.3 数据类型394

11.3.1 局部向量394

11.3.2 标记点395

11.3.3 局部矩阵396

11.3.4 分布式矩阵396

11.4 基础统计398

11.4.1 摘要统计398

11.4.2 相关统计399

11.4.3 分层抽样401

11.4.4 假设检验401

11.4.5 随机数生成402

11.5 分类和回归405

11.5.1 数学公式405

11.5.2 线性回归407

11.5.3 分类407

11.5.4 回归410

11.6 决策树411

11.6.1 基本算法411

11.6.2 使用例子412

11.7 随机森林413

11.7.1 基本算法414

11.7.2 使用例子414

11.8 梯度提升决策树415

11.8.1 基本算法415

11.8.2 使用例子416

11.9 朴素贝叶斯416

11.9.1 算法原理416

11.9.2 使用例子418

11.10 保序回归418

11.10.1 算法原理418

11.10.2 使用例子419

11.11 协同过滤419

11.12 聚类420

11.12.1 K-means420

11.12.2 高斯混合422

11.12.3 快速迭代聚类422

11.12.4 latent Dirichlet allocation422

11.12.5 流式K-means423

11.13 维数减缩424

11.13.1 奇异值分解424

11.13.2 主成分分析425

11.14 特征提取与转型425

11.14.1 术语频率反转425

11.14.2 单词向量转换426

11.14.3 标准尺度427

11.14.4 正规化尺度428

11.14.5 卡方特征选择器428

11.14.6 Hadamard积429

11.15 频繁模式挖掘429

11.16 预言模型标记语言430

11.17 管道431

11.17.1 管道工作原理432

11.17.2 管道API介绍433

11.17.3 交叉验证435

11.18 小结436

附录A Utils437

附录B Akka446

附录C Jetty450

附录D Metrics453

附录E Hadoop word count456

附录F CommandUtils458

附录G Netty461

附录H 源码编译错误465

热门推荐