当前位置:首页 > 程序设计 >
《深入理解Spark:核心思想与源码分析》电子书封面

深入理解Spark:核心思想与源码分析

  • 发布时间:2020年07月07日 09:51:52
  • 作者:耿嘉安
  • 大小:58.5 MB
  • 类别:Spark电子书
  • 格式:PDF
  • 版本:高质量版
  • 评分:9.9

    深入理解Spark:核心思想与源码分析 PDF 高质量版

      给大家带来的一篇关于Spark相关的电子书资源,介绍了关于Spar、核心思想、源码分析、大数据方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小58.5 MB,耿嘉安编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.8。

      内容介绍

      《深入理解SPARK:核心思想与源码分析》结合大量图和示例,对Spark的架构、部署模式和工作模块的设计理念、实现源码与使用技巧进行了深入的剖析与解读。

      《深入理解SPARK:核心思想与源码分析》一书对Spark1.2.0版本的源代码进行了全面而深入的分析,旨在为Spark的优化、定制和扩展提供原理性的指导。阿里巴巴集团专家鼎力推荐、阿里巴巴资深Java开发和大数据专家撰写。

      本书分为三篇:

      准备篇(第1~2章),介绍了Spark的环境搭建、设计理念与基本架构,帮助读者了解一些背景知识。

      核心设计篇(第3~7章),着重讲解SparkContext的初始化、存储体系、任务提交与执行、计算引擎及部署模式的原理和源码分析。通过这部分的内容,读者可以通过源码剖析更加深入理解Spark的核心设计与实现,以便在实际使用中能够快速解决线上问题并对性能进行调优。

      扩展篇(第8~11章),主要讲解基于Spark核心的各种扩展及应用,包括SQL处理引擎、Hive处理、流式计算框架Spark Streaming、图计算框架GraphX、机器学习库MLlib等内容。通过阅读这部分内容,读者可以扩展实际项目中对Spark的应用场景,让Spark焕发活力。

      目录

      • 前言
      • 准 备 篇
      • 第1章 环境准备 2
      • 1.1 运行环境准备 2
      • 1.1.1 安装JDK 3
      • 1.1.2 安装Scala 3
      • 1.1.3 安装Spark 4
      • 1.2 Spark初体验 4
      • 1.2.1 运行spark-shell 4
      • 1.2.2 执行word count 5
      • 1.2.3 剖析spark-shell 7
      • 1.3 阅读环境准备 11
      • 1.4 Spark源码编译与调试 13
      • 1.5 小结 17
      • 第2章 Spark设计理念与基本架构 18
      • 2.1 初识Spark 18
      • 2.1.1 Hadoop MRv1的局限 18
      • 2.1.2 Spark使用场景 20
      • 2.1.3 Spark的特点 20
      • 2.2 Spark基础知识 20
      • 2.3 Spark基本设计思想 22
      • 2.3.1 Spark模块设计 22
      • 2.3.2 Spark模型设计 24
      • 2.4 Spark基本架构 25
      • 2.5 小结 26
      • 核心设计篇
      • 第3章 SparkContext的初始化 28
      • 3.1 SparkContext概述 28
      • 3.2 创建执行环境SparkEnv 30
      • 3.2.1 安全管理器SecurityManager 31
      • 3.2.2 基于Akka的分布式消息系统ActorSystem 31
      • 3.2.3 map任务输出跟踪器mapOutputTracker 32
      • 3.2.4 实例化ShuffleManager 34
      • 3.2.5 shuffle线程内存管理器ShuffleMemoryManager 34
      • 3.2.6 块传输服务BlockTransferService 35
      • 3.2.7 BlockManagerMaster介绍 35
      • 3.2.8 创建块管理器BlockManager 36
      • 3.2.9 创建广播管理器Broadcast-Manager 36
      • 3.2.10 创建缓存管理器CacheManager 37
      • 3.2.11 HTTP文件服务器HttpFile-Server 37
      • 3.2.12 创建测量系统MetricsSystem 39
      • 3.2.13 创建SparkEnv 40
      • 3.3 创建metadataCleaner 41
      • 3.4 SparkUI详解 42
      • 3.4.1 listenerBus详解 43
      • 3.4.2 构造JobProgressListener 46
      • 3.4.3 SparkUI的创建与初始化 47
      • 3.4.4 Spark UI的页面布局与展示 49
      • 3.4.5 SparkUI的启动 54
      • 3.5 Hadoop相关配置及Executor环境变量 54
      • 3.5.1 Hadoop相关配置信息 54
      • 3.5.2 Executor环境变量 54
      • 3.6 创建任务调度器TaskScheduler 55
      • 3.6.1 创建TaskSchedulerImpl 55
      • 3.6.2 TaskSchedulerImpl的初始化 57
      • 3.7 创建和启动DAGScheduler 57
      • 3.8 TaskScheduler的启动 60
      • 3.8.1 创建LocalActor 60
      • 3.8.2 ExecutorSource的创建与注册 62
      • 3.8.3 ExecutorActor的构建与注册 64
      • 3.8.4 Spark自身ClassLoader的创建 64
      • 3.8.5 启动Executor的心跳线程 66
      • 3.9 启动测量系统MetricsSystem 69
      • 3.9.1 注册Sources 70
      • 3.9.2 注册Sinks 70
      • 3.9.3 给Sinks增加Jetty的Servlet-ContextHandler 71
      • 3.10 创建和启动ExecutorAllocation-Manager 72
      • 3.11 ContextCleaner的创建与启动 73
      • 3.12 Spark环境更新 74
      • 3.13 创建DAGSchedulerSource和BlockManagerSource 76
      • 3.14 将SparkContext标记为激活 77
      • 3.15 小结 78
      • 第4章 存储体系 79
      • 4.1 存储体系概述 79
      • 4.1.1 块管理器BlockManager的实现 79
      • 4.1.2 Spark存储体系架构 81
      • 4.2 shuffle服务与客户端 83
      • 4.2.1 Block的RPC服务 84
      • 4.2.2 构造传输上下文Transpor-tContext 85
      • 4.2.3 RPC客户端工厂Transport-ClientFactory 86
      • 4.2.4 Netty服务器TransportServer 87
      • 4.2.5 获取远程shuffle文件 88
      • 4.2.6 上传shuffle文件 89
      • 4.3 BlockManagerMaster对Block-Manager的管理 90
      • 4.3.1 BlockManagerMasterActor 90
      • 4.3.2 询问Driver并获取回复方法 92
      • 4.3.3 向BlockManagerMaster注册BlockManagerId 93
      • 4.4 磁盘块管理器DiskBlockManager 94
      • 4.4.1 DiskBlockManager的构造过程 94
      • 4.4.2 获取磁盘文件方法getFile 96
      • 4.4.3 创建临时Block方法create-TempShuffleBlock 96
      • 4.5 磁盘存储DiskStore 97
      • 4.5.1 NIO读取方法getBytes 97
      • 4.5.2 NIO写入方法putBytes 98
      • 4.5.3 数组写入方法putArray 98
      • 4.5.4 Iterator写入方法putIterator 98
      • 4.6 内存存储MemoryStore 99
      • 4.6.1 数据存储方法putBytes 101
      • 4.6.2 Iterator写入方法putIterator详解 101
      • 4.6.3 安全展开方法unrollSafely 102
      • 4.6.4 确认空闲内存方法ensureFreeSpace 105
      • 4.6.5 内存写入方法putArray 107
      • 4.6.6 尝试写入内存方法tryToPut 108
      • 4.6.7 获取内存数据方法getBytes 109
      • 4.6.8 获取数据方法getValues 110
      • 4.7 Tachyon存储TachyonStore 110
      • 4.7.1 Tachyon简介 111
      • 4.7.2 TachyonStore的使用 112
      • 4.7.3 写入Tachyon内存的方法putIntoTachyonStore 113
      • 4.7.4 获取序列化数据方法getBytes 113
      • 4.8 块管理器BlockManager 114
      • 4.8.1 移出内存方法dropFrom-Memory 114
      • 4.8.2 状态报告方法reportBlockStatus 116
      • 4.8.3 单对象块写入方法putSingle 117
      • 4.8.4 序列化字节块写入方法putBytes 118
      • 4.8.5 数据写入方法doPut 118
      • 4.8.6 数据块备份方法replicate 121
      • 4.8.7 创建DiskBlockObjectWriter的方法getDiskWriter 125
      • 4.8.8 获取本地Block数据方法getBlockData 125
      • 4.8.9 获取本地shuffle数据方法doGetLocal 126
      • 4.8.10 获取远程Block数据方法doGetRemote 127
      • 4.8.11 获取Block数据方法get 128
      • 4.8.12 数据流序列化方法dataSerializeStream 129
      • 4.9 metadataCleaner和broadcastCleaner 129
      • 4.10 缓存管理器CacheManager 130
      • 4.11 压缩算法 133
      • 4.12 磁盘写入实现DiskBlockObjectWriter 133
      • 4.13 块索引shuffle管理器IndexShuffleBlockManager 135
      • 4.14 shuffle内存管理器ShuffleMemoryManager 137
      • 4.15 小结 138
      • 第5章 任务提交与执行 139
      • 5.1 任务概述 139
      • 5.2 广播Hadoop的配置信息 142
      • 5.3 RDD转换及DAG构建 144
      • 5.3.1 为什么需要RDD 144
      • 5.3.2 RDD实现分析 146
      • 5.4 任务提交 152
      • 5.4.1 任务提交的准备 152
      • 5.4.2 finalStage的创建与Stage的划分 157
      • 5.4.3 创建Job 163
      • 5.4.4 提交Stage 164
      • 5.4.5 提交Task 165
      • 5.5 执行任务 176
      • 5.5.1 状态更新 176
      • 5.5.2 任务还原 177
      • 5.5.3 任务运行 178
      • 5.6 任务执行后续处理 179
      • 5.6.1 计量统计与执行结果序列化 179
      • 5.6.2 内存回收 180
      • 5.6.3 执行结果处理 181
      • 5.7 小结 187
      • 第6章 计算引擎 188
      • 6.1 迭代计算 188
      • 6.2 什么是shuffle 192
      • 6.3 map端计算结果缓存处理 194
      • 6.3.1 map端计算结果缓存聚合 195
      • 6.3.2 map端计算结果简单缓存 200
      • 6.3.3 容量限制 201
      • 6.4 map端计算结果持久化 204
      • 6.4.1 溢出分区文件 205
      • 6.4.2排序与分区分组 207
      • 6.4.3 分区索引文件 209
      • 6.5 reduce端读取中间计算结果 210
      • 6.5.1 获取map任务状态 213
      • 6.5.2 划分本地与远程Block 215
      • 6.5.3 获取远程Block 217
      • 6.5.4 获取本地Block 218
      • 6.6 reduce端计算 219
      • 6.6.1 如何同时处理多个map任务的中间结果 219
      • 6.6.2 reduce端在缓存中对中间计算结果执行聚合和排序 220
      • 6.7 map端与reduce端组合分析 221
      • 6.7.1 在map端溢出分区文件,在reduce端合并组合 221
      • 6.7.2 在map端简单缓存、排序分组,在reduce端合并组合 222
      • 6.7.3 在map端缓存中聚合、排序分组,在reduce端组合 222
      • 6.8 小结 223
      • 第7章 部署模式 224
      • 7.1 local部署模式 225
      • 7.2 local-cluster部署模式 225
      • 7.2.1 LocalSparkCluster的启动 226
      • 7.2.2 CoarseGrainedSchedulerBackend的启动 236
      • 7.2.3 启动AppClient 237
      • 7.2.4 资源调度 242
      • 7.2.5 local-cluster模式的任务执行 253
      • 7.3 Standalone部署模式 255
      • 7.3.1 启动Standalone模式 255
      • 7.3.2 启动Master分析 257
      • 7.3.3 启动Worker分析 259
      • 7.3.4 启动Driver Application分析 261
      • 7.3.5 Standalone模式的任务执行 263
      • 7.3.6 资源回收 263
      • 7.4 容错机制 266
      • 7.4.1 Executor异常退出 266
      • 7.4.2 Worker异常退出 268
      • 7.4.3 Master异常退出 269
      • 7.5 其他部署方案 276
      • 7.5.1 YARN 277
      • 7.5.2 Mesos 280
      • 7.6 小结 282
      • 扩 展 篇
      • 第8章 Spark SQL 284
      • 8.1 Spark SQL总体设计 284
      • 8.1.1 传统关系型数据库SQL运行原理 285
      • 8.1.2 Spark SQL运行架构 286
      • 8.2 字典表Catalog 288
      • 8.3 Tree和TreeNode 289
      • 8.4 词法解析器Parser的设计与实现 293
      • 8.4.1 SQL语句解析的入口 294
      • 8.4.2 建表语句解析器DDLParser 295
      • 8.4.3 SQL语句解析器SqlParser 296
      • 8.4.4 Spark代理解析器SparkSQLParser 299
      • 8.5 Rule和RuleExecutor 300
      • 8.6 Analyzer与Optimizer的设计与实现 302
      • 8.6.1 语法分析器Analyzer 304
      • 8.6.2 优化器Optimizer 305
      • 8.7 生成物理执行计划 306
      • 8.8 执行物理执行计划 308
      • 8.9 Hive 311
      • 8.9.1 Hive SQL语法解析器 311
      • 8.9.2 Hive SQL元数据分析 313
      • 8.9.3 Hive SQL物理执行计划 314
      • 8.10 应用举例:JavaSparkSQL 314
      • 8.11 小结 320
      • 第9章 流式计算 321
      • 9.1 Spark Streaming总体设计 321
      • 9.2 StreamingContext初始化 323
      • 9.3 输入流接收器规范Receiver 324
      • 9.4 数据流抽象DStream 325
      • 9.4.1 Dstream的离散化 326
      • 9.4.2 数据源输入流InputDStream 327
      • 9.4.3 Dstream转换及构建DStream Graph 329
      • 9.5 流式计算执行过程分析 330
      • 9.5.1 流式计算例子CustomReceiver 331
      • 9.5.2 Spark Streaming执行环境构建 335
      • 9.5.3 任务生成过程 347
      • 9.6 窗口操作 355
      • 9.7 应用举例 357
      • 9.7.1 安装mosquitto 358
      • 9.7.2 启动mosquitto 358
      • 9.7.3 MQTTWordCount 359
      • 9.8 小结 361
      • 第10章 图计算 362
      • 10.1 Spark GraphX总体设计 362
      • 10.1.1 图计算模型 363
      • 10.1.2 属性图 365
      • 10.1.3 GraphX的类继承体系 367
      • 10.2 图操作 368
      • 10.2.1 属性操作 368
      • 10.2.2 结构操作 368
      • 10.2.3 连接操作 369
      • 10.2.4 聚合操作 370
      • 10.3 Pregel API 371
      • 10.3.1 Dijkstra算法 373
      • 10.3.2 Dijkstra的实现 376
      • 10.4 Graph的构建 377
      • 10.4.1 从边的列表加载Graph 377
      • 10.4.2 在Graph中创建图的方法 377
      • 10.5 顶点集合抽象VertexRDD 378
      • 10.6 边集合抽象EdgeRDD 379
      • 10.7 图分割 380
      • 10.8 常用算法 382
      • 10.8.1 网页排名 382
      • 10.8.2 Connected Components的应用 386
      • 10.8.3 三角关系统计 388
      • 10.9 应用举例 390
      • 10.10 小结 391
      • 第11章 机器学习 392
      • 11.1机器学习概论 392
      • 11.2 Spark MLlib总体设计 394
      • 11.3 数据类型 394
      • 11.3.1 局部向量 394
      • 11.3.2标记点 395
      • 11.3.3局部矩阵 396
      • 11.3.4分布式矩阵 396
      • 11.4基础统计 398
      • 11.4.1摘要统计 398
      • 11.4.2相关统计 399
      • 11.4.3分层抽样 401
      • 11.4.4假设检验 401
      • 11.4.5随机数生成 402
      • 11.5分类和回归 405
      • 11.5.1数学公式 405
      • 11.5.2线性回归 407
      • 11.5.3分类 407
      • 11.5.4回归 410
      • 11.6决策树 411
      • 11.6.1基本算法 411
      • 11.6.2使用例子 412
      • 11.7随机森林 413
      • 11.7.1基本算法 414
      • 11.7.2使用例子 414
      • 11.8梯度提升决策树 415
      • 11.8.1基本算法 415
      • 11.8.2使用例子 416
      • 11.9朴素贝叶斯 416
      • 11.9.1算法原理 416
      • 11.9.2使用例子 418
      • 11.10保序回归 418
      • 11.10.1算法原理 418
      • 11.10.2使用例子 419
      • 11.11协同过滤 419
      • 11.12聚类 420
      • 11.12.1K-means 420
      • 11.12.2高斯混合 422
      • 11.12.3快速迭代聚类 422
      • 11.12.4latent Dirichlet allocation 422
      • 11.12.5流式K-means 423
      • 11.13维数减缩 424
      • 11.13.1奇异值分解 424
      • 11.13.2主成分分析 425
      • 11.14特征提取与转型 425
      • 11.14.1术语频率反转 425
      • 11.14.2单词向量转换 426
      • 11.14.3标准尺度 427
      • 11.14.4正规化尺度 428
      • 11.14.5卡方特征选择器 428
      • 11.14.6Hadamard积 429
      • 11.15频繁模式挖掘 429
      • 11.16预言模型标记语言 430
      • 11.17管道 431
      • 11.17.1管道工作原理 432
      • 11.17.2管道API介绍 433
      • 11.17.3交叉验证 435
      • 11.18小结 436
      • 附录A Utils 437
      • 附录B Akka 446
      • 附录C Jetty 450
      • 附录D Metrics 453
      • 附录E Hadoop word count 456
      • 附录F CommandUtils 458
      • 附录G Netty 461
      • 附录H 源码编译错误 465

      学习笔记

      详解IntelliJ IDEA创建spark项目的两种方式

      Intellij是进行scala开发的一个非常好用的工具,可以非常轻松查看scala源码,当然用它来开发Java也是很爽的,之前一直在用scala ide和eclipse,现在换成intellij简直好用到飞起,但是有些人不知道怎么用intellij去创建一个spark项目,这里介绍两种 1、选择File-new Project-Java-Scala,这里scala版本是2.11.8 2 .之后一路点击next,直到finish,创建完的项目见下图,这时候已经可以创建scala文件了,接下来就可以添加spark相关的jar包了,从官网下载http://spark.apache.org/downloads.html,我这里用的是spark-2.2.1-bin-hadoop2.7,你可以根据自己需要选择相应的版本,下载完压缩包后解压 3 . 选择File-Project Structure-Libraries,点击+,选择Java,选择之……

      浅谈DataFrame和SparkSql取值误区

      1、DataFrame返回的不是对象。 2、DataFrame查出来的数据返回的是一个dataframe数据集。 3、DataFrame只有遇见Action的算子才能执行 4、SparkSql查出来的数据返回的是一个dataframe数据集。 原始数据 scala val parquetDF = sqlContext.read.parquet("hdfs://hadoop14:9000/yuhui/parquet/part-r-00004.gz.parquet")df: org.apache.spark.sql.DataFrame = [timestamp: string, appkey: string, app_version: string, channel: string, lang: string, os_type: string, os_version: string, display: string, device_type: string, mac: string, network: string, nettype: string, suuid: string, register_days: int, country: string, area: string, province: string, city: string, event: string, use_interval_cat: string, use_duration_cat: string, use_interval: bigint, use_duration: ……

      以上就是本次介绍的Spark电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:ADS射频电路设计与仿真从入门到精通

      下一篇:DB2从入门到精通

      展开 +

      收起 -

      下载地址:百度网盘下载
      Spark相关电子书
      Spark内核设计的艺术:架构设计与实现
      Spark内核设计的艺术:架构设计与实现 高清影印版

      细化到方法级,提炼出多个流程图,立体呈现Spark 2.1.0架构与实现精髓,包含架构、环境、调度、存储、计算、部署、API七大核心设计,想要学习Scala、Spark语言的开发人员

      立即下载
      Spark Streaming技术内幕及源码剖析
      Spark Streaming技术内幕及源码剖析 完整版

      本书以大数据处理引擎Spark的稳定版本1.6.x为基础,从应用案例、原理、源码、流程、调 优等多个角度剖析Spark上的实时计算框架Spark Streaming。在勾勒出Spark Streaming架构轮廓的 基础上,从基本源

      立即下载
      Spark SQL内核剖析
      Spark SQL内核剖析 扫描版 立即下载
      数据算法:Hadoop/Spark大数据处理技巧
      数据算法:Hadoop/Spark大数据处理技巧 高清版

      数据算法:Hadoop/Spark大数据处理技巧 介绍了很多基本设计模式、优化技术和数据挖掘及机器学习解决方案,以解决生物信息学、基因组学、统计和社交网络分析等领域的很多问题。这本书还概

      立即下载
      Spark高级数据分析
      Spark高级数据分析 高清版

      Spark高级数据分析 是使用Spark进行大规模数据分析的实战宝典,由大数据公司Cloudera的数据科学家撰写。四位作者首先结合数据科学和大数据分析的广阔背景讲解了Spark,然后介绍了用Spark和Sc

      立即下载
      Spark MLlib机器学习实践
      Spark MLlib机器学习实践 完整第2版

      这是一本细致介绍Spark MLlib程序设计的图书,入门简单,示例丰富,内容由浅而深,采取实例和理论相结合的方式,讲解细致直观,适合Spark MLlib初学者、大数据分析和挖掘人员

      立即下载
      spark案例与实验教程
      spark案例与实验教程 完整扫描版

      由袁景凌、熊盛武、饶文碧主编的《Spark案例与实验教程/云计算与大数据实验教材系列》是一本大数据和分布式计算领域入门阶段的实验教材,结合实例介绍了Spark基本概念、开发环境、基础案

      立即下载
      读者留言
      readboy2012

      readboy2012 提供上传

      资源
      42
      粉丝
      41
      喜欢
      153
      评论
      19

      Copyright 2018-2020 www.xz577.com 码农之家

      版权投诉 / 书籍推广 / 赞助:520161757@qq.com