Spark大数据处理技术

Spark大数据处理技术

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
5.350 评价豆瓣读书

作品简介

《Spark大数据处理技术》以Spark 0.9版本为基础进行编写,是一本全面介绍Spark及Spark生态圈相关技术的书籍,是国内首本深入介绍Spark原理和架构的技术书籍。主要内容有Spark基础功能介绍及内部重要模块分析,包括部署模式、调度框架、存储管理以及应用监控;同时也详细介绍了Spark生态圈中其他的软件和模块,包括SQL处理引擎Shark和Spark SQL、流式处理引擎Spark Streaming、图计算框架Graphx以及分布式内存文件系统Tachyon。《Spark大数据处理技术》从概念和原理上对Spark核心框架和生态圈做了详细的解读,并对Spark的应用现状和未来发展做了一定的介绍,旨在为大数据从业人员和Spark爱好者提供一个更深入学习的平台。

《Spark大数据处理技术》适合任何大数据、Spark领域的从业人员阅读,同时也为架构师、软件开发工程师和大数据爱好者展现了一个现代大数据框架的架构原理和实现细节。相信通过学习《Spark大数据处理技术》,读者能够熟悉和掌握Spark这一当前流行的大数据框架,并将其投入到生产实践中去。

夏俊鸾,现任阿里巴巴数据平台部高级技术专家,Apache Spark项目Committer,曾就职于英特尔亚太研发中心,微博账号@Andrew-Xia。

刘旭晖,现任蘑菇街数据平台资深架构师(花名天火),曾就职于英特尔亚太研发中心大数据软件部,Spark/Hadoop/Hbase/Phoenix等众多大数据相关开源项目的积极贡献者。乐于分享,著有CSDN博客blog.csdn.net/colorant。

邵赛赛,英特尔亚太研发有限公司开发工程师,专注于大数据领域,开源爱好者,现从事Spark相关工作,Spark代码贡献者。

程浩,英特尔大数据技术团队软件工程师,Shark和Spark SQL活跃开发者,致力于SQL on Big Data的性能调优与优化。

史鸣飞,英特尔亚太研发有限公司大数据软件部工程师,专注于大数据领域,主要从事Spark及相关项目的开发及应用,Spark及Shark代码贡献者,现在主要投身于Tachyon项目的开发。

黄洁,目前就职于英特尔亚太研发中心大数据技术中心,担任高级软件工程师,致力于大数据技术的性能优化及开发工作,涉及Hadoop、Spark、HBase等开源项目。

作品目录

  1. 前言
  2. 第1章 Spark系统概述
  3. 1.1 大数据处理框架
  4. 1.2 Spark大数据处理框架
  5. 1.2.1 RDD表达能力
  6. 1.2.2 Spark子系统
  7. 1.3 小结
  8. 第2章 Spark RDD及编程接口
  9. 2.1 Spark程序“Hello World”
  10. 2.2 Spark RDD
  11. 2.2.1 RDD分区(partitions)
  12. 2.2.2 RDD优先位置(preferredLocations)
  13. 2.2.3 RDD依赖关系(dependencies)
  14. 2.2.4 RDD分区计算(compute)
  15. 2.2.5 RDD分区函数(partitioner)
  16. 2.3 创建操作
  17. 2.3.1 集合创建操作
  18. 2.3.2 存储创建操作
  19. 2.4 转换操作
  20. 2.4.1 RDD基本转换操作
  21. 2.4.2 键值RDD转换操作
  22. 2.4.3 再论RDD依赖关系
  23. 2.5 控制操作(control operation)
  24. 2.6 行动操作(action operation)
  25. 2.6.1 集合标量行动操作
  26. 2.6.2 存储行动操作
  27. 2.7 小结
  28. 第3章 Spark运行模式及原理
  29. 3.1 Spark运行模式概述
  30. 3.1.1 Spark运行模式列表
  31. 3.1.2 Spark基本工作流程
  32. 3.1.3 相关基本类
  33. 3.2 Local模式
  34. 3.2.2 内部实现原理
  35. 3.3 Standalone模式
  36. 3.3.2 内部实现原理
  37. 3.4 Local cluster模式
  38. 3.4.2 内部实现原理
  39. 3.5 Mesos模式
  40. 3.5.2 内部实现原理
  41. 3.6 YARN standalone/YARN cluster模式
  42. 3.6.2 内部实现原理
  43. 3.7 YARN client模式
  44. 3.7.2 内部实现原理
  45. 3.8 各种模式的实现细节比较
  46. 3.8.1 环境变量的传递
  47. 3.8.2 JAR包和各种依赖文件的分发
  48. 3.8.3 任务管理和序列化
  49. 3.8.4 用户参数配置
  50. 3.8.5 用户及权限控制
  51. 3.9 Spark 1.0版本之后的变化
  52. 3.10 小结
  53. 第4章 Spark调度管理原理
  54. 4.1 Spark作业调度管理概述
  55. 4.2 Spark调度相关基本概念
  56. 4.3 作业调度模块顶层逻辑概述
  57. 4.4 作业调度具体工作流程
  58. 4.4.1 调度阶段的拆分
  59. 4.4.2 调度阶段的提交
  60. 4.4.3 任务集的提交
  61. 4.4.4 完成状态的监控
  62. 4.4.5 任务结果的获取
  63. 4.5 任务集管理模块详解
  64. 4.6 调度池和调度模式分析
  65. 4.7 其他调度相关内容
  66. 4.7.1 Spark应用之间的调度关系
  67. 4.7.2 调度过程中的数据本地性问题
  68. 4.8 小结
  69. 第5章 Spark的存储管理
  70. 5.1 存储管理模块整体架构
  71. 5.1.1 通信层架构
  72. 5.1.2 通信层消息传递
  73. 5.1.3 注册存储管理模块
  74. 5.1.4 存储层架构
  75. 5.1.5 数据块(Block)
  76. 5.2 RDD持久化
  77. 5.2.1 RDD分区和数据块的关系
  78. 5.2.2 内存缓存
  79. 5.2.3 磁盘缓存
  80. 5.2.4 持久化选项
  81. 5.2.5 如何选择不同的持久化选项
  82. 5.3 Shuffle数据持久化
  83. 5.4 广播(Broadcast)变量持久化
  84. 5.5 小结
  85. 第6章 Spark监控管理
  86. 6.1 UI管理
  87. 6.1.1  实时UI管理
  88. 6.1.2 历史UI管理
  89. 6.2 Metrics管理
  90. 6.2.1 Metrics系统架构
  91. 6.2.2 Metrics系统配置
  92. 6.2.3 输入源(Metrics Source)介绍
  93. 6.2.4 输出方式(Metrics Sink)介绍
  94. 6.3 小结
  95. 第7章 Shark架构与安装配置
  96. 7.1 Shark架构浅析
  97. 7.2 Hive/Shark各功能组件对比
  98. 7.2.1 MetaStore
  99. 7.2.2 CLI/Beeline
  100. 7.2.3 JDBC/ODBC
  101. 7.2.4 Hive Server/2与Shark Server/2
  102. 7.2.5 Driver
  103. 7.2.6 SQL Parser
  104. 7.2.7 查询优化器(Query Optimizer)
  105. 7.2.8 物理计划与执行
  106. 7.3 Shark安装配置与使用
  107. 7.3.1 安装前准备工作
  108. 7.3.2 在不同运行模式下安装Shark
  109. 7.3.2.1 单机运行模式
  110. 7.3.2.2 集群运行模式
  111. 7.3.2.3 部署在亚马逊云计算平台(AWS)
  112. 7.4 Shark SQL命令行工具(CLI)
  113. 7.5 使用Shark Shell命令
  114. 7.6 启动SharkServer
  115. 7.7 Shark Server2配置与启动
  116. 7.8 缓存数据表
  117. 7.8.1 数据缓存级别
  118. 7.8.2 创建不同缓存级别的Shark数据表
  119. 7.8.3 指定数据表缓存策略
  120. 7.8.4 使用Tachyon
  121. 7.9 常见问题分析
  122. 7.9.1 OutOfMemory异常
  123. 7.9.2 数据处理吞吐量低
  124. 7.9.3 Shark查询比Hive慢
  125. 7.10 小结
  126. 第8章 SQL程序扩展
  127. 8.1 程序扩展并行运行模式
  128. 8.2 Evaluator和ObjectInspector
  129. 8.3 自定义函数扩展
  130. 8.3.1 自定义函数扩展分类
  131. 8.3.2 CLI中的用户自定义函数扩展相关命令
  132. 8.3.3 用户自定义函数(UDF)
  133. 8.3.4 通用用户自定义函数(Generic UDF)
  134. 8.3.5 用户自定义聚合函数(UDAF)
  135. 8.3.6 通用用户自定义聚合函数(Generic UDAF)
  136. 8.3.7 通用用户自定义表函数(Generic UDTF)
  137. 8.4 自定义数据存取格式
  138. 8.4.1 SerDe
  139. 8.4.2 StorageHandler
  140. 8.5 小结
  141. 第9章 Spark SQL
  142. 9.1 Spark SQL逻辑架构
  143. 9.1.1 Catalyst功能边界
  144. 9.1.2 SQL解析阶段
  145. 9.1.3 逻辑计划元数据绑定和语义分析阶段
  146. 9.1.4 逻辑计划优化阶段
  147. 9.1.5 物理计划生成阶段
  148. 9.1.6 Shark和Spark SQL对比
  149. 9.2 Catalyst上下文(Context)
  150. 9.2.1 SQLContext
  151. 9.2.2 HiveContext
  152. 9.3 SQL DSL API
  153. 9.3.1 数据源管理
  154. 9.3.1.1 指定数据源
  155. 9.3.1.2 数据源管理
  156. 9.3.2 SchemaRDD
  157. 9.3.3 Row API
  158. 9.3.4 数据类型
  159. 9.3.5 DSL API举例
  160. 9.3.6 表达式计算
  161. 9.3.7 Parquet列式存储文件
  162. 9.3.8 代码演示
  163. 9.4 Java API
  164. 9.5 Python API
  165. 9.6 Spark SQL CLI
  166. 9.7 Thrift服务
  167. 9.8 小结
  168. 第10章 Spark Streaming流数据处理框架
  169. 10.1 快速入门
  170. 10.2 Spark Streaming基本概念
  171. 10.2.1 链接和初始化
  172. 10.2.2 时间和窗口概念
  173. 10.2.3 DStream原理
  174. 10.2.4 DStream输入源
  175. 10.2.5 DStream操作
  176. 10.2.6 DStream持久化
  177. 10.3 性能调优
  178. 10.3.1 运行时间优化
  179. 10.3.2 内存使用优化
  180. 10.4 容错处理
  181. 10.4.1 工作节点失效
  182. 10.4.2 驱动节点失效
  183. 10.5 DStream作业的产生和调度
  184. 10.5.1 作业产生
  185. 10.5.2 作业调度
  186. 10.5.3 Streaming作业与Spark作业之间的关系
  187. 10.6 DStream与RDD关系
  188. 10.7 数据接收原理
  189. 10.8 自定义数据输入源
  190. 10.9 自定义监控接口(StreamingListener)
  191. 10.10 Spark Streaming案例分析
  192. 10.11 小结
  193. 第11章 GraphX计算框架
  194. 11.1 图并行计算
  195. 11.1.1 数据并行与图并行计算
  196. 11.1.2 图并行计算框架简介
  197. 11.1.2.1 Pregel
  198. 11.1.2.2 GraphLab
  199. 11.1.3 GraphX简介
  200. 11.2 GraphX模型设计
  201. 11.2.1 数据模型
  202. 11.2.2 图计算接口
  203. 11.3 GraphX模型实现
  204. 11.3.1 图的分布式存储
  205. 11.3.1.1 边RDD(Edge RDD)
  206. 11.3.1.2 顶点RDD(Vertex RDD)
  207. 11.3.1.3 路由表(RoutingTable)
  208. 11.3.1.4 重复顶点视图(Replicated Vertex View)
  209. 11.3.1.5 图的切分策略
  210. 11.3.2 图操作执行策略
  211. 11.3.3 图操作执行优化
  212. 11.3.3.1 结构索引重用
  213. 11.3.3.2 顺序扫描和索引扫描
  214. 11.3.3.3 顶点数据增量更新
  215. 11.3.3.4 顶点数据部分传输
  216. 11.3.4 序列化和反序列化
  217. 11.3.5 GraphX内置算法库
  218. 11.4 GraphX应用
  219. 11.4.1 Pregel模型
  220. 11.4.2 N维邻接关系计算
  221. 11.5 小结
  222. 第12章 Tachyon存储系统
  223. 12.1 设计原理
  224. 12.1.1 高效的内存读写
  225. 12.1.2 无副本的可靠性实现——Lineage
  226. 12.2 框架设计
  227. 12.2.1 主节点
  228. 12.2.1.1 主节点的工作职责
  229. 12.2.1.2 主节点的容错
  230. 12.2.2 工作节点
  231. 12.2.3 客户端
  232. 12.2.4 读写工作流程
  233. 12.2.4.1 读流程
  234. 12.2.4.2 写流程
  235. 12.3 Tachyon的部署
  236. 12.3.1 单机部署
  237. 12.3.2 分布式部署
  238. 12.3.3 Tachyon的配置
  239. 12.4 Tachyon应用
  240. 12.4.1 Shark原始表(RawTable)
  241. 12.4.2 Spark的堆外RDD
  242. 12.4.3 Tachyon用户接口(API)
  243. 12.4.3.1 命令行
  244. 12.4.3.2 Java程序接口(API)
  245. 12.5 相关项目讨论
  246. 12.6 小结
载入中