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

//
《深入理解Spark:核心思想与源码分析》 PDF 下载_Java知识分享网-免费Java资源下载
http://www.java1234.com/a/javabook/javaweb/2016/0521/6137.html

图书简介:本书对Spark源代码进行了全面而深入的分析,旨在为Spark的优化、定制和扩展提供原理性的指导。阿里巴巴集团专家鼎力推荐,阿里巴巴资深Java开发和大数据专家撰写。本书对Spark的核心模块、部署和协作模块的实现原理与使用技巧进行了深入的剖析与解读。
  本书分为三篇:
  准备篇(第1~2章),介绍了Spark的环境搭建、设计理念与基本架构,帮助读者了解一些背景知识。
  核心设计篇(第3~7章),着重讲解SparkContext的初始化、存储体系、任务提交与执行、计算引擎及部署模式的原理和源码分析。通过这部分的内容,读者可以通过源码剖析更加深入理解Spark的核心设计与实现,以便在实际使用中能够快速解决线上问题并对性能进行调优。
  扩展篇(第8~11章),主要讲解基于Spark核心的各种扩展及应用,包括SQL处理引擎、Hive处理、流式计算框架Spark Streaming、图计算框架GraphX、机器学习库MLlib等内容。通过阅读这部分内容,读者可以扩展实际项目中对Spark的应用场景,让Spark焕发活力。

相关截图:

《深入理解Spark:核心思想与源码分析》 PDF 下载 图1

图书目录:Contents 目录前言准 备 篇第1章 环境准备21.1 运行环境准备21.1.1 安装JDK31.1.2 安装Scala31.1.3 安装Spark41.2 Spark初体验41.2.1 运行spark-shell41.2.2 执行word count51.2.3 剖析spark-shell71.3 阅读环境准备111.4 Spark源码编译与调试131.5 小结17第2章 Spark设计理念与基本架构182.1 初识Spark182.1.1 Hadoop MRv1的局限182.1.2 Spark使用场景202.1.3 Spark的特点202.2 Spark基础知识202.3 Spark基本设计思想222.3.1 Spark模块设计222.3.2 Spark模型设计242.4 Spark基本架构252.5 小结26核心设计篇第3章 SparkContext的初始化283.1 SparkContext概述283.2 创建执行环境SparkEnv303.2.1 安全管理器SecurityManager313.2.2 基于Akka的分布式消息系统ActorSystem313.2.3 map任务输出跟踪器mapOutputTracker323.2.4 实例化ShuffleManager343.2.5 shuffle线程内存管理器ShuffleMemoryManager343.2.6 块传输服务BlockTransferService353.2.7 BlockManagerMaster介绍353.2.8 创建块管理器BlockManager363.2.9 创建广播管理器Broadcast-Manager363.2.10 创建缓存管理器CacheManager373.2.11 HTTP文件服务器HttpFile-Server373.2.12 创建测量系统MetricsSystem393.2.13 创建SparkEnv403.3 创建metadataCleaner413.4 SparkUI详解423.4.1 listenerBus详解433.4.2 构造JobProgressListener463.4.3 SparkUI的创建与初始化473.4.4 Spark UI的页面布局与展示493.4.5 SparkUI的启动543.5 Hadoop相关配置及Executor环境变量543.5.1 Hadoop相关配置信息543.5.2 Executor环境变量543.6 创建任务调度器TaskScheduler553.6.1 创建TaskSchedulerImpl553.6.2 TaskSchedulerImpl的初始化573.7 创建和启动DAGScheduler573.8 TaskScheduler的启动603.8.1 创建LocalActor603.8.2 ExecutorSource的创建与注册623.8.3 ExecutorActor的构建与注册643.8.4 Spark自身ClassLoader的创建643.8.5 启动Executor的心跳线程663.9 启动测量系统MetricsSystem693.9.1 注册Sources703.9.2 注册Sinks703.9.3 给Sinks增加Jetty的Servlet-ContextHandler713.10 创建和启动ExecutorAllocation-Manager723.11 ContextCleaner的创建与启动733.12 Spark环境更新743.13 创建DAGSchedulerSource和BlockManagerSource763.14 将SparkContext标记为激活773.15 小结78第4章 存储体系794.1 存储体系概述794.1.1 块管理器BlockManager的实现794.1.2 Spark存储体系架构814.2 shuffle服务与客户端834.2.1 Block的RPC服务844.2.2 构造传输上下文Transpor-tContext854.2.3 RPC客户端工厂Transport-ClientFactory864.2.4 Netty服务器TransportServer874.2.5 获取远程shuffle文件884.2.6 上传shuffle文件894.3 BlockManagerMaster对Block-Manager的管理904.3.1 BlockManagerMasterActor904.3.2 询问Driver并获取回复方法924.3.3 向BlockManagerMaster注册BlockManagerId934.4 磁盘块管理器DiskBlockManager944.4.1 DiskBlockManager的构造过程944.4.2 获取磁盘文件方法getFile964.4.3 创建临时Block方法create-TempShuffleBlock964.5 磁盘存储DiskStore974.5.1 NIO读取方法getBytes974.5.2 NIO写入方法putBytes984.5.3 数组写入方法putArray984.5.4 Iterator写入方法putIterator984.6 内存存储MemoryStore994.6.1 数据存储方法putBytes1014.6.2 Iterator写入方法putIterator详解1014.6.3 安全展开方法unrollSafely1024.6.4 确认空闲内存方法ensureFreeSpace1054.6.5 内存写入方法putArray1074.6.6 尝试写入内存方法tryToPut1084.6.7 获取内存数据方法getBytes1094.6.8 获取数据方法getValues1104.7 Tachyon存储TachyonStore1104.7.1 Tachyon简介1114.7.2 TachyonStore的使用1124.7.3 写入Tachyon内存的方法putIntoTachyonStore1134.7.4 获取序列化数据方法getBytes1134.8 块管理器BlockManager1144.8.1 移出内存方法dropFrom-Memory1144.8.2 状态报告方法reportBlockStatus1164.8.3 单对象块写入方法putSingle1174.8.4 序列化字节块写入方法putBytes1184.8.5 数据写入方法doPut1184.8.6 数据块备份方法replicate1214.8.7 创建DiskBlockObjectWriter的方法getDiskWriter1254.8.8 获取本地Block数据方法getBlockData1254.8.9 获取本地shuffle数据方法doGetLocal1264.8.10 获取远程Block数据方法doGetRemote1274.8.11 获取Block数据方法get1284.8.12 数据流序列化方法dataSerializeStream1294.9 metadataCleaner和broadcastCleaner1294.10 缓存管理器CacheManager1304.11 压缩算法1334.12 磁盘写入实现DiskBlockObjectWriter1334.13 块索引shuffle管理器IndexShuffleBlockManager1354.14 shuffle内存管理器ShuffleMemoryManager1374.15 小结138第5章 任务提交与执行1395.1 任务概述1395.2 广播Hadoop的配置信息1425.3 RDD转换及DAG构建1445.3.1 为什么需要RDD1445.3.2 RDD实现分析1465.4 任务提交1525.4.1 任务提交的准备1525.4.2 finalStage的创建与Stage的划分1575.4.3 创建Job1635.4.4 提交Stage1645.4.5 提交Task1655.5 执行任务1765.5.1 状态更新1765.5.2 任务还原1775.5.3 任务运行1785.6 任务执行后续处理1795.6.1 计量统计与执行结果序列化1795.6.2 内存回收1805.6.3 执行结果处理1815.7 小结187第6章 计算引擎1886.1 迭代计算1886.2 什么是shuffle1926.3 map端计算结果缓存处理1946.3.1 map端计算结果缓存聚合1956.3.2 map端计算结果简单缓存2006.3.3 容量限制2016.4 map端计算结果持久化2046.4.1 溢出分区文件2056.4.2排序与分区分组2076.4.3 分区索引文件2096.5 reduce端读取中间计算结果2106.5.1 获取map任务状态2136.5.2 划分本地与远程Block2156.5.3 获取远程Block2176.5.4 获取本地Block2186.6 reduce端计算2196.6.1 如何同时处理多个map任务的中间结果2196.6.2 reduce端在缓存中对中间计算结果执行聚合和排序2206.7 map端与reduce端组合分析2216.7.1 在map端溢出分区文件,在reduce端合并组合2216.7.2 在map端简单缓存、排序分组,在reduce端合并组合2226.7.3 在map端缓存中聚合、排序分组,在reduce端组合2226.8 小结223第7章 部署模式2247.1 local部署模式2257.2 local-cluster部署模式2257.2.1 LocalSparkCluster的启动2267.2.2 CoarseGrainedSchedulerBackend的启动2367.2.3 启动AppClient2377.2.4 资源调度2427.2.5 local-cluster模式的任务执行2537.3 Standalone部署模式2557.3.1 启动Standalone模式2557.3.2 启动Master分析2577.3.3 启动Worker分析2597.3.4 启动Driver Application分析2617.3.5 Standalone模式的任务执行2637.3.6 资源回收2637.4 容错机制2667.4.1 Executor异常退出2667.4.2 Worker异常退出2687.4.3 Master异常退出2697.5 其他部署方案2767.5.1 YARN2777.5.2 Mesos2807.6 小结282扩 展 篇第8章 Spark SQL2848.1 Spark SQL总体设计2848.1.1 传统关系型数据库SQL运行原理2858.1.2 Spark SQL运行架构2868.2 字典表Catalog2888.3 Tree和TreeNode2898.4 词法解析器Parser的设计与实现2938.4.1 SQL语句解析的入口2948.4.2 建表语句解析器DDLParser2958.4.3 SQL语句解析器SqlParser2968.4.4 Spark代理解析器SparkSQLParser2998.5 Rule和RuleExecutor3008.6 Analyzer与Optimizer的设计与实现3028.6.1 语法分析器Analyzer3048.6.2 优化器Optimizer3058.7 生成物理执行计划3068.8 执行物理执行计划3088.9 Hive3118.9.1 Hive SQL语法解析器3118.9.2 Hive SQL元数据分析3138.9.3 Hive SQL物理执行计划3148.10 应用举例:JavaSparkSQL3148.11 小结320第9章 流式计算3219.1 Spark Streaming总体设计3219.2 StreamingContext初始化3239.3 输入流接收器规范Receiver3249.4 数据流抽象DStream3259.4.1 Dstream的离散化3269.4.2 数据源输入流InputDStream3279.4.3 Dstream转换及构建DStream Graph3299.5 流式计算执行过程分析3309.5.1 流式计算例子CustomReceiver3319.5.2 Spark Streaming执行环境构建3359.5.3 任务生成过程3479.6 窗口操作3559.7 应用举例3579.7.1 安装mosquitto3589.7.2 启动mosquitto3589.7.3 MQTTWordCount3599.8 小结361第10章 图计算36210.1 Spark GraphX总体设计36210.1.1 图计算模型36310.1.2 属性图36510.1.3 GraphX的类继承体系36710.2 图操作36810.2.1 属性操作36810.2.2 结构操作36810.2.3 连接操作36910.2.4 聚合操作37010.3 Pregel API37110.3.1 Dijkstra算法37310.3.2 Dijkstra的实现37610.4 Graph的构建37710.4.1 从边的列表加载Graph37710.4.2 在Graph中创建图的方法37710.5 顶点集合抽象VertexRDD37810.6 边集合抽象EdgeRDD37910.7 图分割38010.8 常用算法38210.8.1 网页排名38210.8.2 Connected Components的应用38610.8.3 三角关系统计38810.9 应用举例39010.10 小结391第11章 机器学习39211.1机器学习概论39211.2 Spark MLlib总体设计39411.3 数据类型39411.3.1 局部向量39411.3.2标记点39511.3.3局部矩阵39611.3.4分布式矩阵39611.4基础统计39811.4.1摘要统计39811.4.2相关统计39911.4.3分层抽样40111.4.4假设检验40111.4.5随机数生成40211.5分类和回归40511.5.1数学公式40511.5.2线性回归40711.5.3分类40711.5.4回归41011.6决策树41111.6.1基本算法41111.6.2使用例子41211.7随机森林41311.7.1基本算法41411.7.2使用例子41411.8梯度提升决策树41511.8.1基本算法41511.8.2使用例子41611.9朴素贝叶斯41611.9.1算法原理41611.9.2使用例子41811.10保序回归41811.10.1算法原理41811.10.2使用例子41911.11协同过滤41911.12聚类42011.12.1K-means42011.12.2高斯混合42211.12.3快速迭代聚类42211.12.4latent Dirichlet allocation42211.12.5流式K-means42311.13维数减缩42411.13.1奇异值分解42411.13.2主成分分析42511.14特征提取与转型42511.14.1术语频率反转42511.14.2单词向量转换42611.14.3标准尺度42711.14.4正规化尺度42811.14.5卡方特征选择器42811.14.6Hadamard积42911.15频繁模式挖掘42911.16预言模型标记语言43011.17管道43111.17.1管道工作原理43211.17.2管道API介绍43311.17.3交叉验证43511.18小结436附录A Utils437附录B Akka446附录C Jetty450附录D Metrics453附录E Hadoop word count456附录F CommandUtils458附录G Netty461附录H 源码编译错误465

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容