《Spark大数据处理技术》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:夏俊鸾,刘旭晖,邵赛赛,程浩,史鸣飞,黄洁著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2015
  • ISBN:9787121250811
  • 页数:336 页
图书介绍:随着大数据需求和使用模式的扩大,Hadoop已暴露出诸多局限性,特别是越来越多的组织需要对大数据进行实时的、迭代式和交互式的分析和挖掘。本书将介绍如何用Spark这一被国内外广泛看好的明日之星,是如何超越Hadoop的这些局限性,以及如何在基于内存的分布式计算系统(Spark和Shark等)上实现突破。我们还将着重介绍英特尔中国使用Hadoop、Spark和Shark技术的开发实践,以及基于内存的实时大数据分析平台(包括数据的实时导入、分析和展现)的应用。

第1章 Spark系统概述 1

1.1 大数据处理框架 1

1.2 Spark大数据处理框架 3

1.2.1 RDD表达能力 3

1.2.2 Spark子系统 4

1.3 小结 7

第2章 Spark RDD及编程接口 9

2.1 Spark程序“Hello World” 9

2.2 Spark RDD 12

2.2.1 RDD分区(partitions) 13

2.2.2 RDD优先位置(preferredLocations) 13

2.2.3 RDD依赖关系(dependencies) 15

2.2.4 RDD分区计算(compute) 19

2.2.5 RDD分区函数(partitioner) 20

2.3 创建操作 23

2.3.1 集合创建操作 23

2.3.2 存储创建操作 23

2.4 转换操作 26

2.4.1 RDD基本转换操作 26

2.4.2 键值RDD转换操作 35

2.4.3 再论RDD依赖关系 43

2.5 控制操作(control operation) 46

2.6 行动操作(action operation) 47

2.6.1 集合标量行动操作 47

2.6.2 存储行动操作 52

2.7 小结 56

第3章 Spark运行模式及原理 57

3.1 Spark运行模式概述 57

3.1.1 Spark运行模式列表 57

3.1.2 Spark基本工作流程 58

3.1.3 相关基本类 59

3.2 Local模式 62

3.2.1 部署及程序运行 62

3.2.2 内部实现原理 63

3.3 Standalone模式 64

3.3.1 部署及程序运行 64

3.3.2 内部实现原理 67

3.4 Local cluster模式 68

3.4.1 部署及程序运行 68

3.4.2 内部实现原理 69

3.5 Mesos模式 69

3.5.1 部署及程序运行 69

3.5.2 内部实现原理 70

3.6 YARN standalone/YARN cluster模式 72

3.6.1 部署及程序运行 72

3.6.2 内部实现原理 75

3.7 YARN client模式 76

3.7.1 部署及程序运行 76

3.7.2 内部实现原理 77

3.8 各种模式的实现细节比较 78

3.8.1 环境变量的传递 78

3.8.2 JAR包和各种依赖文件的分发 80

3.8.3 任务管理和序列化 82

3.8.4 用户参数配置 83

3.8.5 用户及权限控制 84

3.9 Spark 1.0版本之后的变化 85

3.10 小结 86

第4章 Spark调度管理原理 87

4.1 Spark作业调度管理概述 87

4.2 Spark调度相关基本概念 88

4.3 作业调度模块顶层逻辑概述 89

4.4 作业调度具体工作流程 92

4.4.1 调度阶段的拆分 94

4.4.2 调度阶段的提交 97

4.4.3 任务集的提交 99

4.4.4 完成状态的监控 99

4.4.5 任务结果的获取 101

4.5 任务集管理模块详解 102

4.6 调度池和调度模式分析 104

4.7 其他调度相关内容 106

4.7.1 Spark应用之间的调度关系 106

4.7.2 调度过程中的数据本地性问题 106

4.8 小结 107

第5章 Spark的存储管理 109

5.1 存储管理模块整体架构 109

5.1.1 通信层架构 110

5.1.2 通信层消息传递 112

5.1.3 注册存储管理模块 113

5.1.4 存储层架构 114

5.1.5 数据块(Block) 116

5.2 RDD持久化 116

5.2.1 RDD分区和数据块的关系 117

5.2.2 内存缓存 118

5.2.3 磁盘缓存 119

5.2.4 持久化选项 120

5.2.5 如何选择不同的持久化选项 122

5.3 Shuffle数据持久化 122

5.4 广播(Broadcast)变量持久化 125

5.5 小结 126

第6章 Spark监控管理 127

6.1 UI管理 127

6.1.1 实时UI管理 128

6.1.2 历史UI管理 132

6.2 Metrics管理 133

6.2.1 Metrics系统架构 133

6.2.2 Metrics系统配置 135

6.2.3 输入源(Metrics Source)介绍 136

6.2.4 输出方式(Metrics Sink)介绍 138

6.3 小结 139

第7章 Shark架构与安装配置 141

7.1 Shark架构浅析 142

7.2 Hive/Shark各功能组件对比 143

7.2.1 MetaStore 143

7.2.2 CLI/ Beeline 143

7.2.3 JDBC/ODBC 144

7.2.4 Hive Server/2与Shark Server/2 144

7.2.5 Driver 145

7.2.6 SQL Parser 146

7.2.7 查询优化器(Query Optimizer) 147

7.2.8 物理计划与执行 147

7.3 Shark安装配置与使用 148

7.3.1 安装前准备工作 149

7.3.2 在不同运行模式下安装Shark 149

7.4 Shark SQL命令行工具(CLI) 152

7.5 使用Shark Shell命令 155

7.6 启动Shark Server 155

7.7 Shark Server2配置与启动 156

7.8 缓存数据表 157

7.8.1 数据缓存级别 158

7.8.2 创建不同缓存级别的Shark数据表 158

7.8.3 指定数据表缓存策略 159

7.8.4 使用Tachyon 160

7.9 常见问题分析 160

7.9.1 OutOfMemory异常 160

7.9.2 数据处理吞吐量低 161

7.9.3 Shark查询比Hive慢 161

7.10 小结 162

第8章 SQL程序扩展 163

8.1 程序扩展并行运行模式 164

8.2 Evaluator和ObjectInspector 164

8.3 自定义函数扩展 168

8.3.1 自定义函数扩展分类 168

8.3.2 CLI中的用户自定义函数扩展相关命令 170

8.3.3 用户自定义函数(UDF) 171

8.3.4 通用用户自定义函数(Generic UDF) 175

8.3.5 用户自定义聚合函数(UDAF) 178

8.3.6 通用用户自定义聚合函数(Generic UDAF) 182

8.3.7 通用用户自定义表函数(Generic UDTF) 186

8.4 自定义数据存取格式 190

8.4.1 SerDe 190

8.4.2 StorageHandler 197

8.5 小结 198

第9章 Spark SQL 199

9.1 Spark SQL逻辑架构 199

9.1.1 Catalyst功能边界 200

9.1.2 SQL解析阶段 201

9.1.3 逻辑计划元数据绑定和语义分析阶段 202

9.1.4 逻辑计划优化阶段 202

9.1.5 物理计划生成阶段 202

9.1.6 Shark和Spark SQL对比 203

9.2 Catalyst上下文(Context) 204

9.2.1 SQLContext 204

9.2.2 HiveContext 205

9.3 SQL DSL API 206

9.3.1 数据源管理 206

9.3.2 SchemaRDD 208

9.3.3 Row API 210

9.3.4 数据类型 211

9.3.5 DSL API举例 213

9.3.6 表达式计算 214

9.3.7 Parquet列式存储文件 218

9.3.8 代码演示 218

9.4 Java API 221

9.5 Python API 224

9.6 Spark SQL CLI 225

9.7 Thrift服务 225

9.8 小结 225

第10章 Spark Streaming流数据处理框架 227

10.1 快速入门 227

10.2 Spark Streaming基本概念 229

10.2.1 链接和初始化 229

10.2.2 时间和窗口概念 231

10.2.3 DStream原理 232

10.2.4 DStream输入源 234

10.2.5 DStream操作 235

10.2.6 DStream持久化 237

10.3 性能调优 238

10.3.1 运行时间优化 238

10.3.2 内存使用优化 238

10.4 容错处理 239

10.4.1 工作节点失效 239

10.4.2 驱动节点失效 240

10.5 DStream作业的产生和调度 242

10.5.1 作业产生 242

10.5.2 作业调度 243

10.5.3 Streaming作业与Spark作业之间的关系 244

10.6 DStream与RDD关系 246

10.7 数据接收原理 248

10.8 自定义数据输入源 251

10.9 自定义监控接口(StreamingListener) 253

10.10 Spark Streaming案例分析 254

10.11 小结 256

第11章 GraphX计算框架 259

11.1 图并行计算 259

11.1.1 数据并行与图并行计算 259

11.1.2 图并行计算框架简介 260

11.1.3 GraphX简介 264

11.2 GraphX模型设计 264

11.2.1 数据模型 264

11.2.2 图计算接口 265

11.3 GraphX模型实现 269

11.3.1 图的分布式存储 269

11.3.2 图操作执行策略 278

11.3.3 图操作执行优化 280

11.3.4 序列化和反序列化 283

11.3.5 GraphX内置算法库 284

11.4 GraphX应用 285

11.4.1 Pregel模型 285

11.4.2 N维邻接关系计算 288

11.5 小结 291

第12章 Tachyon存储系统 293

12.1 设计原理 294

12.1.1 高效的内存读写 294

12.1.2 无副本的可靠性实现——Lineage 297

12.2 框架设计 299

12.2.1 主节点 300

12.2.2 工作节点 304

12.2.3 客户端 306

12.2.4 读写工作流程 307

12.3 Tachyon的部署 313

12.3.1 单机部署 313

12.3.2 分布式部署 316

12.3.3 Tachyon的配置 317

12.4 Tachyon应用 321

12.4.1 Shark原始表(RawTable) 321

12.4.2 Spark的堆外RDD 325

12.4.3 Tachyon用户接口(API) 327

12.5 相关项目讨论 335

12.6 小结 336