作品简介

本书结合大量图和示例,对Spark的架构、部署模式和工作模块的设计理念、实现源码与使用技巧进行了深入的剖析与解读。《深入理解SPARK:核心思想与源码分析》一书对Spark1.2.0版本的源代码进行了全面而深入的分析,旨在为Spark的优化、定制和扩展提供原理性的指导。阿里巴巴集团专家鼎力推荐、阿里巴巴资深Java开发和大数据专家撰写。

耿嘉安,10年IT行业相关经验。就职于阿里巴巴商家业务事业部,任资深Java工程师,专注于开源和大数据领域,目前与小伙伴们基于ODPS构建阿里的大数据商业解决方案——御膳房。在大量的工作实践中,对J2EE、JVM、Tomcat、Spring、Hadoop、Spark、MySQL、Redis都有深入研究,尤其喜欢剖析开源项目的源码实现。早期从事J2EE企业级应用开发,对Java相关技术有独到见解。业余时间喜欢研究中国古代历史,古诗词,旅游,足球等。

作品目录

  • 前言
  • 准备篇
  • 第1章 环境准备
  • 1.1 运行环境准备
  • 1.2 Spark初体验
  • 1.3 阅读环境准备
  • 1.4 Spark源码编译与调试
  • 1.5 小结
  • 第2章 Spark设计理念与基本架构
  • 2.1 初识Spark
  • 2.2 Spark基础知识
  • 2.3 Spark基本设计思想
  • 2.4 Spark基本架构
  • 2.5 小结
  • 核心设计篇
  • 第3章 SparkContext的初始化
  • 3.1 SparkContext概述
  • 3.2 创建执行环境SparkEnv
  • 3.3 创建metadataCleaner
  • 3.4 SparkUI详解
  • 3.5 Hadoop相关配置及Executor环境变量
  • 3.6 创建任务调度器TaskScheduler
  • 3.7 创建和启动DAGScheduler
  • 3.8 TaskScheduler的启动
  • 3.9 启动测量系统MetricsSystem
  • 3.10 创建和启动ExecutorAllocationManager
  • 3.11 ContextCleaner的创建与启动
  • 3.12 Spark环境更新
  • 3.13 创建DAGSchedulerSource和BlockManagerSource
  • 3.14 将SparkContext标记为激活
  • 3.15 小结
  • 第4章 存储体系
  • 4.1 存储体系概述
  • 4.2 shuffle服务与客户端
  • 4.3 BlockManagerMaster对BlockManager的管理
  • 4.4 磁盘块管理器DiskBlockManager
  • 4.5 磁盘存储DiskStore
  • 4.6 内存存储MemoryStore
  • 4.7 Tachyon存储TachyonStore
  • 4.8 块管理器BlockManager
  • 4.9 metadataCleaner和broadcastCleaner
  • 4.10 缓存管理器CacheManager
  • 4.11 压缩算法
  • 4.12 磁盘写入实现DiskBlockObjectWriter
  • 4.13 块索引shuffle管理器IndexShuffleBlockManager
  • 4.14 shuffle内存管理器ShuffleMemoryManager
  • 4.15 小结
  • 第5章 任务提交与执行
  • 5.1 任务概述
  • 5.2 广播Hadoop的配置信息
  • 5.3 RDD转换及DAG构建
  • 5.4 任务提交
  • 5.5 执行任务
  • 5.6 任务执行后续处理
  • 5.7 小结
  • 第6章 计算引擎
  • 6.1 迭代计算
  • 6.2 什么是shuffle
  • 6.3 map端计算结果缓存处理
  • 6.4 map端计算结果持久化
  • 6.5 reduce端读取中间计算结果
  • 6.6 reduce端计算
  • 6.7 map端与reduce端组合分析
  • 6.8 小结
  • 第7章 部署模式
  • 7.1 local部署模式
  • 7.2 local-cluster部署模式
  • 7.3 Standalone部署模式
  • 7.4 容错机制
  • 7.5 其他部署方案
  • 7.6 小结
  • 扩展篇
  • 第8章 Spark SQL
  • 8.1 Spark SQL总体设计
  • 8.2 字典表Catalog
  • 8.3 Tree和TreeNode
  • 8.4 词法解析器Parser的设计与实现
  • 8.5 Rule和RuleExecutor
  • 8.6 Analyzer与Optimizer的设计与实现
  • 8.7 生成物理执行计划
  • 8.8 执行物理执行计划
  • 8.9 Hive
  • 8.10 应用举例:JavaSparkSQL
  • 8.11 小结
  • 第9章 流式计算
  • 9.1 Spark Streaming总体设计
  • 9.2 StreamingContext初始化
  • 9.3 输入流接收器规范Receiver
  • 9.4 数据流抽象DStream
  • 9.5 流式计算执行过程分析
  • 9.6 窗口操作
  • 9.7 应用举例
  • 9.8 小结
  • 第10章 图计算
  • 10.1 Spark GraphX总体设计
  • 10.2 图操作
  • 10.3 Pregel API
  • 10.4 Graph的构建
  • 10.5 顶点集合抽象VertexRDD
  • 10.6 边集合抽象EdgeRDD
  • 10.7 图分割
  • 10.8 常用算法
  • 10.9 应用举例
  • 10.10 小结
  • 第11章 机器学习
  • 11.1 机器学习概论
  • 11.2 Spark MLlib总体设计
  • 11.3 数据类型
  • 11.4 基础统计
  • 11.5 分类和回归
  • 11.6 决策树
  • 11.7 随机森林
  • 11.8 梯度提升决策树
  • 11.9 朴素贝叶斯
  • 11.10 保序回归
  • 11.11 协同过滤
  • 11.12 聚类
  • 11.13 维数减缩
  • 11.14 特征提取与转型
  • 11.15 频繁模式挖掘
  • 11.16 预言模型标记语言
  • 11.17 管道
  • 11.18 小结
  • 附录A Utils
  • 附录B Akka
  • 附录C Jetty
  • 附录D Metrics
  • 附录E Hadoop word count
  • 附录F CommandUtils
  • 附录G Netty
  • 附录H 源码编译错误
展开全部