Spark技术内幕:深入解析Spark内核架构设计与实现原理

Spark技术内幕:深入解析Spark内核架构设计与实现原理

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
阅读浸润 岁月留香满500减300、满200减120、满100减60活动详情

作品简介

Spark是不断壮大的大数据分析解决方案家族中备受关注的新增成员。它不仅为分布式数据集的处理提供一个有效框架,而且以高效的方式处理分布式数据集。它支持实时处理、流处理和批处理,提供了AllinOne的统一解决方案,使得Spark极具竞争力。本书以源码为基础,深入分析Spark内核的设计理念和架构实现,系统讲解各个核心模块的实现,为性能调优、二次开发和系统运维提供理论支持;本文*后以项目实战的方式,系统讲解生产环境下Spark应用的开发、部署和性能调优。

作者:张安站

作品目录

  1. 前言
  2. 致谢
  3. 联系方式
  4. 第1章 Spark简介
  5. 1.1 Spark的技术背景
  6. 1.2 Spark的优点
  7. 1.3 Spark架构综述
  8. 1.4 Spark核心组件概述
  9. 1.4.1 Spark Streaming
  10. 1.4.2 MLlib
  11. 1.4.3 Spark SQL
  12. 1.4.4 GraphX
  13. 1.5 Spark的整体代码结构规模
  14. 第2章 Spark学习环境的搭建
  15. 2.1 源码的获取与编译
  16. 2.1.1 源码获取
  17. 2.1.2 源码编译
  18. 2.2 构建Spark的源码阅读环境
  19. 2.3 小结
  20. 第3章 RDD实现详解
  21. 3.1 概述
  22. 3.2 什么是RDD
  23. 3.2.1 RDD的创建
  24. 3.2.2 RDD的转换
  25. 3.2.3 RDD的动作
  26. 3.2.4 RDD的缓存
  27. 3.2.5 RDD的检查点
  28. 3.3 RDD的转换和DAG的生成
  29. 3.3.1 RDD的依赖关系
  30. 3.3.2 DAG的生成
  31. 3.3.3 Word Count的RDD转换和DAG划分的逻辑视图
  32. 3.4 RDD的计算
  33. 3.4.1 Task简介
  34. 3.4.2 Task的执行起点
  35. 3.4.3 缓存的处理
  36. 3.4.4 checkpoint的处理
  37. 3.4.5 RDD的计算逻辑
  38. 3.5 RDD的容错机制
  39. 3.6 小结
  40. 第4章 Scheduler模块详解
  41. 4.1 模块概述
  42. 4.1.1 整体架构
  43. 4.1.2 Scheduler的实现概述
  44. 4.2 DAGScheduler实现详解
  45. 4.2.1 DAGScheduler的创建
  46. 4.2.2 Job的提交
  47. 4.2.3 Stage的划分
  48. 4.2.4 任务的生成
  49. 4.3 任务调度实现详解
  50. 4.3.1 TaskScheduler的创建
  51. 4.3.2 Task的提交概述
  52. 4.3.3 任务调度具体实现
  53. 4.3.4 Task运算结果的处理
  54. 4.4 Word Count调度计算过程详解
  55. 4.5 小结
  56. 第5章 Deploy模块详解
  57. 5.1 Spark运行模式概述
  58. 5.1.1 local
  59. 5.1.2 Mesos
  60. 5.1.3 YARN
  61. 5.2 模块整体架构
  62. 5.3 消息传递机制详解
  63. 5.3.1 Master和Worker
  64. 5.3.2 Master和Client
  65. 5.3.3 Client和Executor
  66. 5.4 集群的启动
  67. 5.4.1 Master的启动
  68. 5.4.2 Worker的启动
  69. 5.5 集群容错处理
  70. 5.5.1 Master异常退出
  71. 5.5.2 Worker异常退出
  72. 5.5.3 Executor异常退出
  73. 5.6 Master HA实现详解
  74. 5.6.1 Master启动的选举和数据恢复策略
  75. 5.6.2 集群启动参数的配置
  76. 5.6.3 Curator Framework简介
  77. 5.6.4 ZooKeeperLeaderElectionAgent的实现
  78. 5.7 小结
  79. 第6章 Executor模块详解
  80. 6.1 Standalone模式的Executor分配详解
  81. 6.1.1 SchedulerBackend创建AppClient
  82. 6.1.2 AppClient向Master注册Application
  83. 6.1.3 Master根据AppClient的提交选择Worker
  84. 6.1.4 Worker根据Master的资源分配结果创建Executor
  85. 6.2 Task的执行
  86. 6.2.1 依赖环境的创建和分发
  87. 6.2.2 任务执行
  88. 6.2.3 任务结果的处理
  89. 6.2.4 Driver端的处理
  90. 6.3 参数设置
  91. 6.3.1 spark.executor.memory
  92. 6.3.2 日志相关
  93. 6.3.3 spark.executor.heartbeatInterval
  94. 6.4 小结
  95. 第7章 Shuffle模块详解
  96. 7.1 Hash Based Shuffle Write
  97. 7.1.1 Basic Shuffle Writer实现解析
  98. 7.1.2 存在的问题
  99. 7.1.3 Shuffle Consolidate Writer
  100. 7.1.4 小结
  101. 7.2 Shuffle Pluggable框架
  102. 7.2.1 org.apache.spark.shuffle.ShuffleManager
  103. 7.2.2 org.apache.spark.shuffle.ShuffleWriter
  104. 7.2.3 org.apache.spark.shuffle.ShuffleBlockManager
  105. 7.2.4 org.apache.spark.shuffle.ShuffleReader
  106. 7.2.5 如何开发自己的Shuffle机制
  107. 7.3 Sort Based Write
  108. 实现详解
  109. 7.4 Shuffle Map Task运算结果的处理
  110. 7.4.1 Executor端的处理
  111. 7.4.2 Driver端的处理
  112. 7.5 Shuffle Read
  113. 7.5.1 整体流程
  114. 7.5.2 数据读取策略的划分
  115. 7.5.3 本地读取
  116. 7.5.4 远程读取
  117. 7.6 性能调优
  118. 7.6.1 spark.shuffle.manager
  119. 7.6.2 spark.shuffle.spill
  120. 7.6.3 spark.shuffle.memoryFraction和spark.shuffle.safetyFraction
  121. 7.6.4 spark.shuffle.sort.bypassMergeThreshold
  122. 7.6.5 spark.shuffle.blockTransferService
  123. 7.6.6 spark.shuffle.consolidateFiles
  124. 7.6.7 spark.shuffle.compress和spark.shuffle.spill.compress
  125. 7.6.8 spark.reducer.maxMbInFlight
  126. 7.7 小结
  127. 第8章 Storage模块详解
  128. 8.1 模块整体架构
  129. 8.1.1 整体架构
  130. 8.1.2 源码组织结构
  131. 8.1.3 Master和Slave的消息传递详解
  132. 8.2 存储实现详解
  133. 8.2.1 存储级别
  134. 8.2.2 模块类图
  135. 8.2.3 org.apache.spark.storage.DiskStore实现详解
  136. 8.2.4 org.apache.spark.storage.MemoryStore实现详解
  137. 8.2.5 org.apache.spark.storage.TachyonStore实现详解
  138. 8.2.6 Block存储的实现
  139. 8.3 性能调优
  140. 8.3.1 spark.local.dir
  141. 8.3.2 spark.executor.memory
  142. 8.3.3 spark.storage.memoryFraction
  143. 8.3.4 spark.streaming.blockInterval
  144. 8.4 小结
  145. 第9章 企业应用概述
  146. 9.1 Spark在百度
  147. 9.1.1 现状
  148. 9.1.2 百度开放云BMR的Spark
  149. 9.1.3 在Spark中使用Tachyon
  150. 9.2 Spark在阿里
  151. 9.3 Spark在腾讯
  152. 9.4 小结
载入中

大家都喜欢