展开全部

主编推荐语

细化到方法级,提炼出多个流程图,立体呈现架构、环境、调度、存储、计算、部署、API七大核心设计。

内容简介

本书对Spark内部高度抽象的数据结构RDD、分布式DAG调度器/驱动器,以及高效的基于Non-blocking IO分布式计算框架Akka/Netty等内核设计进行了深度剖析,不可多得,是适合大型分布式计算架构师和资深开源贡献者阅读的参考书。

目录

  • 版权信息
  • 本书赞誉
  • 前言
  • 第1章 环境准备
  • 1.1 运行环境准备
  • 1.1.1 安装JDK
  • 1.1.2 安装Scala
  • 1.1.3 安装Spark
  • 1.2 Spark初体验
  • 1.2.1 运行spark-shell
  • 1.2.2 执行word count
  • 1.2.3 剖析spark-shell
  • 1.3 阅读环境准备
  • 1.3.1 安装SBT
  • 1.3.2 安装Git
  • 1.3.3 安装Eclipse Scala IDE插件
  • 1.4 Spark源码编译与调试
  • 1.5 小结
  • 第2章 设计理念与基本架构
  • 2.1 初识Spark
  • 2.1.1 Hadoop MRv1的局限
  • 2.1.2 Spark的特点
  • 2.1.3 Spark使用场景
  • 2.2 Spark基础知识
  • 2.3 Spark基本设计思想
  • 2.3.1 Spark模块设计
  • 2.3.2 Spark模型设计
  • 2.4 Spark基本架构
  • 2.5 小结
  • 第3章 Spark基础设施
  • 3.1 Spark配置
  • 3.1.1 系统属性中的配置
  • 3.1.2 使用SparkConf配置的API
  • 3.1.3 克隆SparkConf配置
  • 3.2 Spark内置RPC框架
  • 3.2.1 RPC配置TransportConf
  • 3.2.2 RPC客户端工厂TransportClientFactory
  • 3.2.3 RPC服务端TransportServer
  • 3.2.4 管道初始化
  • 3.2.5 TransportChannelHandler详解
  • 3.2.6 服务端RpcHandler详解
  • 3.2.7 服务端引导程序TransportServerBootstrap
  • 3.2.8 客户端TransportClient详解
  • 3.3 事件总线
  • 3.3.1 ListenerBus的继承体系
  • 3.3.2 SparkListenerBus详解
  • 3.3.3 LiveListenerBus详解
  • 3.4 度量系统
  • 3.4.1 Source继承体系
  • 3.4.2 Sink继承体系
  • 3.5 小结
  • 第4章 SparkContext的初始化
  • 4.1 SparkContext概述
  • 4.2 创建Spark环境
  • 4.3 SparkUI的实现
  • 4.3.1 SparkUI概述
  • 4.3.2 WebUI框架体系
  • 4.3.3 创建SparkUI
  • 4.4 创建心跳接收器
  • 4.5 创建和启动调度系统
  • 4.6 初始化块管理器BlockManager
  • 4.7 启动度量系统
  • 4.8 创建事件日志监听器
  • 4.9 创建和启动ExecutorAllocationManager
  • 4.10 ContextCleaner的创建与启动
  • 4.10.1 创建ContextCleaner
  • 4.10.2 启动ContextCleaner
  • 4.11 额外的SparkListener与启动事件总线
  • 4.12 Spark环境更新
  • 4.13 SparkContext初始化的收尾
  • 4.14 SparkContext提供的常用方法
  • 4.15 SparkContext的伴生对象
  • 4.16 小结
  • 第5章 Spark执行环境
  • 5.1 SparkEnv概述
  • 5.2 安全管理器SecurityManager
  • 5.3 RPC环境
  • 5.3.1 RPC端点RpcEndpoint
  • 5.3.2 RPC端点引用RpcEndpointRef
  • 5.3.3 创建传输上下文TransportConf
  • 5.3.4 消息调度器Dispatcher
  • 5.3.5 创建传输上下文TransportContext
  • 5.3.6 创建传输客户端工厂TransportClientFactory
  • 5.3.7 创建TransportServer
  • 5.3.8 客户端请求发送
  • 5.3.9 NettyRpcEnv中的常用方法
  • 5.4 序列化管理器SerializerManager
  • 5.5 广播管理器BroadcastManager
  • 5.6 map任务输出跟踪器
  • 5.6.1 MapOutputTracker的实现
  • 5.6.2 MapOutputTrackerMaster的实现原理
  • 5.7 构建存储体系
  • 5.8 创建度量系统
  • 5.8.1 MetricsConfig详解
  • 5.8.2 MetricsSystem中的常用方法
  • 5.8.3 启动MetricsSystem
  • 5.9 输出提交协调器
  • 5.9.1 OutputCommitCoordinatorEndpoint的实现
  • 5.9.2 OutputCommitCoordinator的实现
  • 5.9.3 OutputCommitCoordinator的工作原理
  • 5.10 创建SparkEnv
  • 5.11 小结
  • 第6章 存储体系
  • 6.1 存储体系概述
  • 6.1.1 存储体系架构
  • 6.1.2 基本概念
  • 6.2 Block信息管理器
  • 6.2.1 Block锁的基本概念
  • 6.2.2 Block锁的实现
  • 6.3 磁盘Block管理器
  • 6.3.1 本地目录结构
  • 6.3.2 DiskBlockManager提供的方法
  • 6.4 磁盘存储DiskStore
  • 6.5 内存管理器
  • 6.5.1 内存池模型
  • 6.5.2 StorageMemoryPool详解
  • 6.5.3 MemoryManager模型
  • 6.5.4 UnifiedMemoryManager详解
  • 6.6 内存存储MemoryStore
  • 6.6.1 MemoryStore的内存模型
  • 6.6.2 MemoryStore提供的方法
  • 6.7 块管理器BlockManager
  • 6.7.1 BlockManager的初始化
  • 6.7.2 BlockManager提供的方法
  • 6.8 BlockManagerMaster对BlockManager的管理
  • 6.8.1 BlockManagerMaster的职责
  • 6.8.2 BlockManagerMasterEndpoint详解
  • 6.8.3 BlockManagerSlaveEndpoint详解
  • 6.9 Block传输服务
  • 6.9.1 初始化NettyBlockTransferService
  • 6.9.2 NettyBlockRpcServer详解
  • 6.9.3 Shuffle客户端
  • 6.10 DiskBlockObjectWriter详解
  • 6.11 小结
  • 第7章 调度系统
  • 7.1 调度系统概述
  • 7.2 RDD详解
  • 7.2.1 为什么需要RDD
  • 7.2.2 RDD实现的初次分析
  • 7.2.3 RDD依赖
  • 7.2.4 分区计算器Partitioner
  • 7.2.5 RDDInfo
  • 7.3 Stage详解
  • 7.3.1 ResultStage的实现
  • 7.3.2 ShuffleMapStage的实现
  • 7.3.3 StageInfo
  • 7.4 面向DAG的调度器DAGScheduler
  • 7.4.1 JobListener与JobWaiter
  • 7.4.2 ActiveJob详解
  • 7.4.3 DAGSchedulerEventProcessLoop的简要介绍
  • 7.4.4 DAGScheduler的组成
  • 7.4.5 DAGScheduler提供的常用方法
  • 7.4.6 DAGScheduler与Job的提交
  • 7.4.7 构建Stage
  • 7.4.8 提交ResultStage
  • 7.4.9 提交还未计算的Task
  • 7.4.10 DAGScheduler的调度流程
  • 7.4.11 Task执行结果的处理
  • 7.5 调度池Pool
  • 7.5.1 调度算法
  • 7.5.2 Pool的实现
  • 7.5.3 调度池构建器
  • 7.6 任务集合管理器TaskSetManager
  • 7.6.1 Task集合
  • 7.6.2 TaskSetManager的成员属性
  • 7.6.3 调度池与推断执行
  • 7.6.4 Task本地性
  • 7.6.5 TaskSetManager的常用方法
  • 7.7 运行器后端接口LauncherBackend
  • 7.7.1 BackendConnection的实现
  • 7.7.2 LauncherBackend的实现
  • 7.8 调度后端接口SchedulerBackend
  • 7.8.1 SchedulerBackend的定义
  • 7.8.2 LocalSchedulerBackend的实现分析
  • 7.9 任务结果获取器TaskResultGetter
  • 7.9.1 处理成功的Task
  • 7.9.2 处理失败的Task
  • 7.10 任务调度器TaskScheduler
  • 7.10.1 TaskSchedulerImpl的属性
  • 7.10.2 TaskSchedulerImpl的初始化
  • 7.10.3 TaskSchedulerImpl的启动
  • 7.10.4 TaskSchedulerImpl与Task的提交
  • 7.10.5 TaskSchedulerImpl与资源分配
  • 7.10.6 TaskSchedulerImpl的调度流程
  • 7.10.7 TaskSchedulerImpl对执行结果的处理
  • 7.10.8 TaskSchedulerImpl的常用方法
  • 7.11 小结
  • 第8章 计算引擎
  • 8.1 计算引擎概述
  • 8.2 内存管理器与执行内存
  • 8.2.1 ExecutionMemoryPool详解
  • 8.2.2 MemoryManager模型与执行内存
  • 8.2.3 UnifiedMemoryManager与执行内存
  • 8.3 内存管理器与Tungsten
  • 8.3.1 MemoryBlock详解
  • 8.3.2 MemoryManager模型与Tungsten
  • 8.3.3 Tungsten的内存分配器
  • 8.4 任务内存管理器
  • 8.4.1 TaskMemoryManager详解
  • 8.4.2 内存消费者
  • 8.4.3 执行内存整体架构
  • 8.5 Task详解
  • 8.5.1 任务上下文TaskContext
  • 8.5.2 Task的定义
  • 8.5.3 ShuffleMapTask的实现
  • 8.5.4 ResultTask的实现
  • 8.6 IndexShuffleBlockResolver详解
  • 8.7 采样与估算
  • 8.7.1 SizeTracker的实现分析
  • 8.7.2 SizeTracker的工作原理
  • 8.8 特质WritablePartitionedPairCollection
  • 8.9 AppendOnlyMap的实现分析
  • 8.9.1 AppendOnlyMap的容量增长
  • 8.9.2 AppendOnlyMap的数据更新
  • 8.9.3 AppendOnlyMap的缓存聚合算法
  • 8.9.4 AppendOnlyMap的内置排序
  • 8.9.5 AppendOnlyMap的扩展
  • 8.10 PartitionedPairBuffer的实现分析
  • 8.10.1 PartitionedPairBuffer的容量增长
  • 8.10.2 PartitionedPairBuffer的插入
  • 8.10.3 PartitionedPairBuffer的迭代器
  • 8.11 外部排序器
  • 8.11.1 ExternalSorter详解
  • 8.11.2 ShuffleExternalSorter详解
  • 8.12 Shuffle管理器
  • 8.12.1 ShuffleWriter详解
  • 8.12.2 ShuffleBlockFetcherIterator详解
  • 8.12.3 BlockStoreShuffleReader详解
  • 8.12.4 SortShuffleManager详解
  • 8.13 map端与reduce端的Shuffle组合
  • 8.14 小结
  • 第9章 部署模式
  • 9.1 心跳接收器HeartbeatReceiver
  • 9.2 Executor的实现分析
  • 9.2.1 Executor的心跳报告
  • 9.2.2 运行Task
  • 9.3 local部署模式
  • 9.4 持久化引擎PersistenceEngine
  • 9.4.1 基于文件系统的持久化引擎
  • 9.4.2 基于ZooKeeper的持久化引擎
  • 9.5 领导选举代理
  • 9.6 Master详解
  • 9.6.1 启动Master
  • 9.6.2 检查Worker超时
  • 9.6.3 被选举为领导时的处理
  • 9.6.4 一级资源调度
  • 9.6.5 注册Worker
  • 9.6.6 更新Worker的最新状态
  • 9.6.7 处理Worker的心跳
  • 9.6.8 注册Application
  • 9.6.9 处理Executor的申请
  • 9.6.10 处理Executor的状态变化
  • 9.6.11 Master的常用方法
  • 9.7 Worker详解
  • 9.7.1 启动Worker
  • 9.7.2 向Master注册Worker
  • 9.7.3 向Master发送心跳
  • 9.7.4 Worker与领导选举
  • 9.7.5 运行Driver
  • 9.7.6 运行Executor
  • 9.7.7 处理Executor的状态变化
  • 9.8 StandaloneAppClient实现
  • 9.8.1 ClientEndpoint的实现分析
  • 9.8.2 StandaloneAppClient的实现分析
  • 9.9 StandaloneSchedulerBackend的实现分析
  • 9.9.1 StandaloneSchedulerBackend的属性
  • 9.9.2 DriverEndpoint的实现分析
  • 9.9.3 StandaloneSchedulerBackend的启动
  • 9.9.4 StandaloneSchedulerBackend的停止
  • 9.9.5 StandaloneSchedulerBackend与资源分配
  • 9.10 CoarseGrainedExecutorBackend详解
  • 9.10.1 CoarseGrainedExecutorBackend进程
  • 9.10.2 CoarseGrainedExecutorBackend的功能分析
  • 9.11 local-cluster部署模式
  • 9.11.1 启动本地集群
  • 9.11.2 local-cluster部署模式的启动过程
  • 9.11.3 local-cluster部署模式下Executor的分配过程
  • 9.11.4 local-cluster部署模式下的任务提交执行过程
  • 9.12 Standalone部署模式
  • 9.12.1 Standalone部署模式的启动过程
  • 9.12.2 Standalone部署模式下Executor的分配过程
  • 9.12.3 Standalone部署模式的资源回收
  • 9.12.4 Standalone部署模式的容错机制
  • 9.13 其他部署方案
  • 9.13.1 YARN
  • 9.13.2 Mesos
  • 9.14 小结
  • 第10章 Spark API
  • 10.1 基本概念
  • 10.2 数据源DataSource
  • 10.2.1 DataSourceRegister详解
  • 10.2.2 DataSource详解
  • 10.3 检查点的实现
  • 10.3.1 CheckpointRDD的实现
  • 10.3.2 RDDCheckpointData的实现
  • 10.3.3 ReliableRDDCheckpointData的实现
  • 10.4 RDD的再次分析
  • 10.4.1 转换API
  • 10.4.2 动作API
  • 10.4.3 检查点API的实现分析
  • 10.4.4 迭代计算
  • 10.5 数据集合Dataset
  • 10.6 DataFrameReader详解
  • 10.7 SparkSession详解
  • 10.7.1 SparkSession的构建器Builder
  • 10.7.2 SparkSession的API
  • 10.8 word count例子
  • 10.8.1 Job准备阶段
  • 10.8.2 Job的提交与调度
  • 10.9 小结
  • 附录
展开全部

评分及书评

评分不足
1个评分
  • 用户头像
    给这本书评了
    5.0

    大数据技术生态其实是一个千姿百态的江湖。从学习技术的角度,最重要的是能将厚变薄,将纷繁复杂的信息进行归类和抽象。对应到大数据技术体系,虽然各种技术百花齐放,层出不穷,但大数据技术本质上无非解决 4 个核心问题:存储,计算,查询,挖掘。而 Spark 发展的短短几年,以迅雷不及掩耳之势推出 RDDSpark StreamingSpark SQLGraphXMLlib 等一系列模块,震撼了大数据圈。

      转发
      评论

    出版方

    机械工业出版社有限公司

    机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。