新書推薦:
《
没有一种人生是完美的:百岁老人季羡林的人生智慧(读完季羡林,我再也不内耗了)
》
售價:HK$
56.9
《
日耳曼通识译丛:复原力:心理抗逆力
》
售價:HK$
34.3
《
海外中国研究·未竟之业:近代中国的言行表率
》
售價:HK$
135.7
《
我们为何建造(城市与生态文明丛书)
》
售價:HK$
89.7
《
算法经济 : 商业逻辑与人类生活的智能演进(生动呈现AI与算法的创新应用与商业价值)
》
售價:HK$
79.4
《
家书中的百年史
》
售價:HK$
79.4
《
偏爱月亮
》
售價:HK$
45.8
《
生物安全与环境
》
售價:HK$
56.4
|
內容簡介: |
Spark是不断壮大的大数据分析解决方案家族中备受关注的新增成员。它不仅为分布式数据集的处理提供一个有效框架,而且以高效的方式处理分布式数据集。它支持实时处理、流处理和批处理,提供了AllinOne的统一解决方案,使得Spark极具竞争力。本书以源码为基础,深入分析Spark内核的设计理念和架构实现,系统讲解各个核心模块的实现,为性能调优、二次开发和系统运维提供理论支持;本文*后以项目实战的方式,系统讲解生产环境下Spark应用的开发、部署和性能调优。
|
目錄:
|
序
前言
第1章 Spark简介
1.1Spark的技术背景
1.2Spark的优点
1.3Spark架构综述
1.4Spark核心组件概述
1.4.1Spark Streaming
1.4.2MLlib
1.4.3Spark SQL
1.4.4 GraphX
1.5Spark的整体代码结构规模
第2章 Spark学习环境的搭建
2.1源码的获取与编译
2.1.1源码获取
2.1.2源码编译
2.2构建Spark的源码阅读环境
2.3小结
第3章 RDD实现详解
3.1概述
3.2什么是RDD
3.2.1RDD的创建
3.2.2RDD的转换
3.2.3 RDD的动作
3.2.4RDD的缓存
3.2.5RDD的检查点
3.3RDD的转换和DAG的生成
3.3.1RDD的依赖关系
3.3.2DAG的生成
3.3.3Word Count的RDD转换和DAG划分的逻辑视图
3.4RDD的计算
3.4.1Task简介
3.4.2Task的执行起点
3.4.3缓存的处理
3.4.4checkpoint的处理
3.4.5RDD的计算逻辑
3.5RDD的容错机制
3.6小结
第4章 Scheduler 模块详解
4.1模块概述
4.1.1整体架构
4.1.2Scheduler的实现概述
4.2DAGScheduler实现详解
4.2.1DAGScheduler的创建
4.2.2Job的提交
4.2.3Stage的划分
4.2.4任务的生成
4.3任务调度实现详解
4.3.1TaskScheduler的创建
4.3.2Task的提交概述
4.3.3任务调度具体实现
4.3.4Task运算结果的处理
4.4Word Count调度计算过程详解
4.5小结
第5章 Deploy模块详解
5.1 Spark运行模式概述
5.1.1 local
5.1.2Mesos
5.1.3YARN
5.2模块整体架构
5.3消息传递机制详解
5.3.1Master和Worker
5.3.2Master和Client
5.3.3Client和Executor
5.4集群的启动
5.4.1Master的启动
5.4.2Worker的启动
5.5集群容错处理
5.5.1Master 异常退出
5.5.2Worker异常退出
5.5.3Executor异常退出
5.6Master HA实现详解
5.6.1Master启动的选举和数据恢复策略
5.6.2集群启动参数的配置
5.6.3Curator Framework简介
5.6.4ZooKeeperLeaderElectionAgent的实现
5.7小结
第6章 Executor模块详解
6.1Standalone模式的Executor分配详解
6.1.1SchedulerBackend创建AppClient
6.1.2AppClient向Master注册Application
6.1.3Master根据AppClient的提交选择Worker
6.1.4Worker根据Master的资源分配结果创建Executor
6.2Task的执行
6.2.1依赖环境的创建和分发
6.2.2任务执行
6.2.3任务结果的处理
6.2.4Driver端的处理
6.3 参数设置
6.3.1 spark.executor.memory
6.3.2日志相关
6.3.3spark.executor.heartbeatInterval
6.4小结
第7章 Shuffle模块详解
7.1Hash Based Shuffle Write
7.1.1Basic Shuffle Writer实现解析
7.1.2存在的问题
7.1.3Shuffle Consolidate Writer
7.1.4小结
7.2Shuffle Pluggable 框架
7.2.1org.apache.spark.shuffle.ShuffleManager
7.2.2org.apache.spark.shuffle.ShuffleWriter
7.2.3org.apache.spark.shuffle.ShuffleBlockManager
7.2.4org.apache.spark.shuffle.ShuffleReader
7.2.5如何开发自己的Shuffle机制
7.3Sort Based Write
7.4Shuffle Map Task运算结果的处理
7.4.1Executor端的处理
7.4.2Driver端的处理
7.5Shuffle Read
7.5.1整体流程
7.5.2数据读取策略的划分
7.5.3本地读取
7.5.4远程读取
7.6性能调优
7.6.1spark.shuffle.manager
7.6.2spark.shuffle.spill
7.6.3spark.shuffle.memoryFraction和spark.shuffle.safetyFraction
7.6.4spark.shuffle.sort.bypassMergeThreshold
7.6.5spark.shuffle.blockTransferService
7.6.6spark.shuffle.consolidateFiles
7.6.7spark.shuffle.compress和 spark.shuffle.spill.compress
7.6.8spark.reducer.maxMbInFlight
7.7小结
第8章 Storage模块详解
8.1模块整体架构
8.1.1整体架构
8.1.2源码组织结构
8.1.3Master 和Slave的消息传递详解
8.2存储实现详解
8.2.1存储级别
8.2.2模块类图
8.2.3org.apache.spark.storage.DiskStore实现详解
8.2.4org.apache.spark.storage.MemoryStore实现详解
8.2.5org.apache.spark.storage.TachyonStore实现详解
8.2.6Block存储的实现
8.3性能调优
8.3.1spark.local.dir
8.3.2spark.executor.memory
8.3.3spark.storage.memoryFraction
8.3.4spark.streaming.blockInterval
8.4小结
第9章 企业应用概述
9.1Spark在百度
9.1.1现状
9.1.2百度开放云BMR的Spark
9.1.3在Spark中使用Tachyon
9.2Spark在阿里
9.3Spark在腾讯
9.4小结
|
|