Spark大数据商业实战三部曲 内核解密 商业案例 性能调优pdf

图书网 2020年8月5日19:29:0022.4K

Spark大数据商业实战三部曲 内核解密 商业案例 性能调优 作者:王家林,段智华,夏阳

Spark大数据商业实战三部曲 内核解密 商业案例 性能调优 出版社:清华大学出版社

Spark大数据商业实战三部曲 内核解密 商业案例 性能调优 内容简介

《Spark大数据商业实战三部曲:内核解密|商业案例|性能调优》基于Spark 2.2.X,以Spark商业案例实战和Spark在生产环境下几乎所有类型的性能调优为核心,以Spark内核解密为基石,分为上篇、中篇、下篇,对企业生产环境下的Spark商业案例与性能调优抽丝剥茧地进行剖析。上篇基于Spark源码,从一个动手实战案例入手,循序渐进地全面解析了Spark 2.2新特性及Spark内核源码;中篇选取Spark开发中*具有代表的经典学习案例,深入浅出地介绍,在案例中综合应用Spark的大数据技术;下篇性能调优内容基本完全覆盖了Spark在生产环境下的所有调优技术。

Spark大数据商业实战三部曲 内核解密 商业案例 性能调优 目录

前言

上篇 内核解密

第1章 电光石火间体验Spark 2.2开发实战

1.1 通过RDD实战电影点评系统入门及源码阅读

1.2 通过DataFrame和DataSet实战电影点评系统

1.3 Spark 2.2源码阅读环境搭建及源码阅读体验

第2章 Spark 2.2技术及原理

2.1 Spark 2.2综述

2.2 Spark 2.2 Core

2.3 Spark 2.2 SQL

2.4 Spark 2.2 Streaming

2.5 Spark 2.2 MLlib

2.6 Spark 2.2 GraphX

第3章 Spark的灵魂:RDD和DataSet

3.1 为什么说RDD和DataSet是Spark的灵魂

3.2 RDD弹性特性七个方面解析

3.3 RDD依赖关系

3.4 解析Spark中的DAG逻辑视图

3.5 RDD内部的计算机制

3.6 Spark RDD容错原理及其四大核心要点解析

3.7 Spark RDD中Runtime流程解析

3.8 通过WordCount实战解析Spark RDD内部机制

3.9 基于DataSet的代码到底是如何一步步转化成为RDD的

第4章 Spark Driver启动内幕剖析

4.1 Spark Driver Program剖析

4.2 DAGScheduler解析

4.3 TaskScheduler解析

4.4 SchedulerBackend解析

4.5 打通Spark系统运行内幕机制循环流程

4.6 本章总结

第5章 Spark集群启动原理和源码详解

5.1 Master启动原理和源码详解

5.2 Worker启动原理和源码详解

5.3 ExecutorBackend启动原理和源码详解

5.4 Executor中任务的执行

5.5 Executor执行结果的处理方式

5.6 本章总结

第6章 Spark Application提交给集群的原理和源码详解

6.1 Spark Application到底是如何提交给集群的

6.2 Spark Application是如何向集群申请资源的

6.3 从Application提交的角度重新审视Driver

6.4 从Application提交的角度重新审视Executor

6.5 Spark 1.6 RPC内幕解密:运行机制、源码详解、Netty与Akka等

6.6 本章总结

第7章 Shuffle原理和源码详解

7.1 概述

7.2 Shuffle的框架

7.3 Hash Based Shuffle

7.4 Sorted Based Shuffle

7.5 Tungsten Sorted Based Shuffle

7.6 Shuffle与Storage模块间的交互

7.7 本章总结

第8章 Job工作原理和源码详解

8.1 Job到底在什么时候产生

8.2 Stage划分内幕

8.3 Task全生命周期详解

8.4 ShuffleMapTask和ResultTask处理结果是如何被Driver管理的

第9章 Spark中Cache和checkpoint原理和源码详解

9.1 Spark中Cache原理和源码详解

9.2 Spark中checkpoint原理和源码详解

第10章 Spark中Broadcast和Accumulator原理和源码详解

10.1 Spark中Broadcast原理和源码详解

10.2 Spark中Accumulator原理和源码详解

第11章 Spark与大数据其他经典组件整合原理与实战

11.1 Spark组件综合应用

11.2 Spark与Alluxio整合原理与实战

11.3 Spark与Job Server整合原理与实战

11.4 Spark与Redis整合原理与实战

中篇 商业案例

第12章 Spark商业案例之大数据电影点评系统应用案例

12.1 通过RDD实现分析电影的用户行为信息

12.2 通过RDD实现电影流行度分析

12.3 通过RDD分析各种类型的最喜爱电影TopN及性能优化技巧

12.4 通过RDD分析电影点评系统仿QQ和微信等用户群分析及广播背后机制解密

12.5 通过RDD分析电影点评系统实现Java和Scala版本的二次排序系统

12.6 通过Spark SQL中的SQL语句实现电影点评系统用户行为分析

12.7 通过Spark SQL下的两种不同方式实现口碑最佳电影分析

12.8 通过Spark SQL下的两种不同方式实现最流行电影分析

12.9 通过DataFrame分析最受男性和女性喜爱电影TopN

12.10 纯粹通过DataFrame分析电影点评系统仿QQ和微信、淘宝等用户群

12.11 纯粹通过DataSet对电影点评系统进行流行度和不同年龄阶段兴趣分析等

12.12 大数据电影点评系统应用案例涉及的核心知识点原理、源码及案例代码

12.13 本章总结

第13章 Spark 2.2实战之Dataset开发实战企业人员管理系统应用案例

13.1 企业人员管理系统应用案例业务需求分析

13.2 企业人员管理系统应用案例数据建模

13.3 通过SparkSession创建案例开发实战上下文环境

13.4 通过map、flatMap、mapPartitions等分析企业人员管理系统

13.5 通过dropDuplicate、coalesce、repartition等分析企业人员管理系统

13.6 通过sort、join、joinWith等分析企业人员管理系统

13.7 通过randomSplit、sample、select等分析企业人员管理系统

13.8 通过groupBy、agg、col等分析企业人员管理系统

13.9 通过collect_list、collect_set等分析企业人员管理系统

13.10 通过avg、sum、countDistinct等分析企业人员管理系统

13.11 Dataset开发实战企业人员管理系统应用案例代码

13.12 本章总结

第14章 Spark商业案例之电商交互式分析系统应用案例

14.1 纯粹通过DataSet进行电商交互式分析系统中特定时段访问次数TopN

14.2 纯粹通过DataSet分析特定时段购买金额Top10和访问次数增长Top10

14.3 纯粹通过DataSet进行电商交互式分析系统中各种类型TopN分析实战详解

14.4 电商交互式分析系统应用案例涉及的核心知识点原理、源码及案例代码

14.5 本章总结

第15章 Spark商业案例之NBA篮球运动员大数据分析系统应用案例

15.1 NBA篮球运动员大数据分析系统架构和实现思路

15.2 NBA篮球运动员大数据分析系统代码实战:数据清洗和初步处理

15.3 NBA篮球运动员大数据分析代码实战之核心基础数据项编写

15.4 NBA篮球运动员大数据分析完整代码测试和实战

15.5 NBA篮球运动员大数据分析系统应用案例涉及的核心知识点、原理、源码

15.6 本章总结

第16章 电商广告点击大数据实时流处理系统案例

16.1 电商广告点击综合案例需求分析和技术架构

16.2 电商广告点击综合案例在线点击统计实战

16.3 电商广告点击综合案例黑名单过滤实现

16.4 电商广告点击综合案例底层数据层的建模和编码实现(基于MySQL)

16.5 电商广告点击综合案例动态黑名单过滤真正的实现代码

16.6 动态黑名单基于数据库MySQL的真正操作代码实战

16.7 通过updateStateByKey等实现广告点击流量的在线更新统计

16.8 实现每个省份点击排名Top5广告

16.9 实现广告点击Trend趋势计算实战

16.10 实战模拟点击数据的生成和数据表SQL的建立

16.11 电商广告点击综合案例运行结果

16.12 电商广告点击综合案例Scala版本关注点

16.13 电商广告点击综合案例课程的Java源码

16.14 电商广告点击综合案例课程的Scala源码

16.15 本章总结

第17章 Spark在通信运营商生产环境中的应用案例

17.1 Spark在通信运营商融合支付系统日志统计分析中的综合应用案例

17.2 Spark在光宽用户流量热力分布GIS系统中的综合应用案例

17.3 本章总结

第18章 使用Spark GraphX实现婚恋社交网络多维度分析案例

18.1 Spark GraphX发展演变历史和在业界的使用案例

18.2 Spark GraphX设计实现的核心原理

18.3 Table operator和Graph Operator

18.4 Vertices、edges、triplets

18.5 以最原始的方式构建Graph

18.6 第一个Graph代码实例并进行Vertices、edges、triplets操作实战

18.7 数据加载成为Graph并进行操作实战

18.8 图操作之Property Operators实战

18.9 图操作之Structural Operators实战

18.10 图操作之Computing Degree实战

18.11 图操作之Collecting Neighbors实战

18.12 图操作之Join Operators实战

18.13 图操作之aggregateMessages实战

18.14 图算法之Pregel API原理解析与实战

18.15 图算法之ShortestPaths原理解析与实战

18.16 图算法之PageRank原理解析与实战

18.17 图算法之TriangleCount原理解析与实战

18.18 使用Spark GraphX实现婚恋社交网络多维度分析实战

18.19 婚恋社交网络多维度分析案例代码

18.20 本章总结

下篇 性能调优

第19章 对运行在YARN上的Spark进行性能调优

19.1 运行环境Jar包管理及数据本地性原理调优实践

19.2 Spark on YARN两种不同的调度模型及其调优

19.3 YARN队列资源不足引起的Spark应用程序失败的原因及调优方案

19.4 Spark on YARN模式下Executor经常被杀死的原因及调优方案

19.5 YARN-Client模式下网卡流量激增的原因及调优方案

19.6 YARN-Cluster模式下JVM栈内存溢出的原因及调优方案

第20章 Spark算子调优最佳实践

20.1 使用mapPartitions或者mapPartitionWithIndex取代map操作

20.2 使用foreachPartition把Spark数据持久化到外部存储介质

20.3 使用coalesce取代rePartition操作

20.4 使用repartitionAndSortWithinPartitions取代repartition和sort的联合操作

20.5 使用treeReduce取代reduce的原理和源码

20.6 使用treeAggregate取代Aggregate的原理和源码

20.7 reduceByKey高效运行的原理和源码解密

20.8 使用AggregateByKey取代groupByKey的原理和源码

20.9 Join不产生Shuffle的情况及案例实战

20.10 RDD复用性能调优最佳实践

第21章 Spark频繁遇到的性能问题及调优技巧

21.1 使用BroadCast广播大变量和业务配置信息原理和案例实战

21.2 使用Kryo取代Scala默认的序列器原理和案例实战

21.3 使用FastUtil优化JVM数据格式解析和案例实战

21.4 Persist及checkpoint使用时的正误方式

21.5 序列化导致的报错原因解析和调优实战

21.6 算子返回NULL产生的问题及解决办法

第22章 Spark集群资源分配及并行度调优最佳实践

22.1 实际生产环境下每个Executor内存及CPU的具体配置及原因

22.2 Spark并行度设置最佳实践

第23章 Spark集群中Mapper端、Reducer端内存调优

23.1 Spark集群中Mapper端内存调优实战

23.2 Spark集群中Reducer端内存调优实战

第24章 使用Broadcast实现Mapper端Shuffle聚合功能的原理和调优实战

24.1 使用Broadcast实现Mapper端Shuffle聚合功能的原理

24.2 使用Broadcast实现Mapper端Shuffle聚合功能调优实战

第25章 使用Accumulator高效地实现分布式集群全局计数器的原理和调优案例

25.1 Accumulator内部工作原理

25.2 Accumulator自定义实现原理和源码解析

25.3 Accumulator作全局计数器案例实战

第26章 Spark下JVM性能调优最佳实践

26.1 JVM内存架构详解及调优

26.2 Spark中对JVM使用的内存原理图详解及调优

26.3 Spark下JVM的On-Heap和Off-Heap解密

26.4 Spark下的JVM GC导致的Shuffle拉取文件失败及调优方案

26.5 Spark下的Executor对JVM堆外内存连接等待时长调优

26.6 Spark下的JVM内存降低Cache内存占比的调优

第27章 Spark五大子框架调优最佳实践

27.1 Spark SQL调优原理及调优最佳实践

27.2 Spark Streaming调优原理及调优最佳实践

27.3 Spark GraphX调优原理及调优最佳实践

27.4 Spark ML调优原理及调优最佳实践

27.5 SparkR调优原理及调优最佳实践

第28章 Spark 2.2.0新一代钨丝计划优化引擎

28.1 概述

28.2 内存管理与二进制处理

28.3 缓存感知计算

28.4 代码生成

28.5 本章总结

第29章 Spark Shuffle调优原理及实践

29.1 Shuffle对性能消耗的原理详解

29.2 Spark.Shuffle.manager参数调优原理及实践

29.3 Spark.Shuffle.blockTransferService参数调优原理及实践

29.4 Spark.Shuffle.compress参数调优原理及实践

29.5 Spark.io.compression.codec参数调优原理及实践

29.6 Spark.Shuffle.consolidateFiles参数调优原理及实践

29.7 Spark.Shuffle.file.buffer参数调优原理及实践

29.8 Spark.Shuffle.io.maxRetries参数调优原理及实践

29.9 Spark.Shuffle.io.retryWait参数调优原理及实践

29.10 Spark.Shuffle.io.numConnectionsPerPeer参数调优原理及实践

29.11 Spark.reducer.maxSizeInFlight参数调优原理及实践

29.12 Spark.Shuffle.io.preferDirectBufs参数调优原理及实践

29.13 Spark.Shuffle.memoryFraction参数调优原理及实践

29.14 Spark.Shuffle.service.enabled参数调优原理及实践

29.15 Spark.Shuffle.service.port参数调优原理及实践

29.16 Spark.Shuffle.Sort.bypassMergeThreshold参数调优原理及实践

29.17 Spark.Shuffle.spill参数调优原理及实践

29.18 Spark.Shuffle.spill.compress参数调优原理及实践

第30章 Spark性能调优之数据倾斜调优一站式解决方案原理与实战

30.1 为什么数据倾斜是分布式大数据系统的性能噩梦

30.2 数据倾斜解决方案之一:对源数据进行聚合并过滤掉导致倾斜的Keys

30.3 数据倾斜解决方案之二:适当提高Reducer端的并行度

30.4 数据倾斜解决方案之三:使用随机Key实现双重聚合

30.5 数据倾斜解决方案之四:使用Mapper端进行Join操作

30.6 数据倾斜解决方案之五:对倾斜的Keys采样后进行单独的Join操作

30.7 数据倾斜解决方案之六:使用随机数进行Join

30.8 数据倾斜解决方案之七:通过扩容进行Join

30.9 结合电影点评系统进行数据倾斜解决方案的小结

第31章 Spark大数据性能调优实战专业之路

31.1 大数据性能调优的本质和Spark性能调优要点分析

31.2 Spark性能调优之系统资源使用原理和调优最佳实践

31.3 Spark性能调优之使用更高性能算子及其源码剖析

31.4 Spark旧版本中性能调优之HashShuffle剖析及调优

31.5 Shuffle如何成为Spark性能杀手

31.6 Spark Hash Shuffle源码解读与剖析

31.7 Sort-Based Shuffle产生的内幕及其tungsten-sort背景解密

31.8 Spark Shuffle令人费解的6大经典问题

31.9 Spark Sort-Based Shuffle排序具体实现内幕和源码详解

31.10 Spark 1.6.X以前Shuffle中JVM内存使用及配置内幕详情

31.11 Spark 2.2.X中Shuffle中内存管理源码解密:StaticMemory和UnifiedMemory

31.12 Spark 2.2.X中Shuffle中JVM Unified Memory内幕详情

31.13 Spark 2.2.X中Shuffle中Task视角内存分配管理

31.14 Spark 2.2.X中Shuffle中Mapper端的源码实现

31.15 Spark 2.2.X中Shuffle中SortShuffleWriter排序源码内幕解密

31.16 Spark 2.2.X中Sort Shuffle中timSort排序源码具体实现

31.17 Spark 2.2.X中Sort Shuffle中Reducer端的源码内幕

后记

Spark大数据商业实战三部曲 内核解密 商业案例 性能调优 精彩文摘

第5章 Spark集群启动原理和源码详解

本章深入讲解Spark集群启动原理和源码。5.1节讲解Master启动原理和源码;5.2节讲解Worker启动原理和源码;5.3节阐述了ExecutorBackend启动原理和源码、ExecutorBackend接口与Executor的关系、ExecutorBackend的不同实现、ExecutorBackend中的通信及异常处理;5.4节讲解Executor中任务的执行、加载、任务线程池、任务执行失败处理、TaskRunner运行内幕;5.5节讲解Executor执行结果的处理方式。

5.1 Master启动原理和源码详解

本节讲解Master启动的原理和源码;Master HA双机切换;Master的注册机制和状态管理解密等内容。

5.1.1 Master启动的原理详解

Spark应用程序作为独立的集群进程运行,由主程序中的SparkContext 对象(称为驱动程序)协调。Spark集群部署组件图5-1所示。

图5-1 Spark集群部署组件图

其中各个术语及相关术语的描述如下。

(1)Driver Program:运行Application的main函数并新建SparkContext实例的程序,称为驱动程序(Driver Program)。通常可以使用SparkContext代表驱动程序。

(2)Cluster Manager:集群管理器(Cluster Manager)是集群资源管理的外部服务。Spark上现在主要有Standalone、YARN、Mesos 3种集群资源管理器。Spark自带的Standalone模式能够满足绝大部分纯粹的Spark计算环境中对集群资源管理的需求,基本上只有在集群中运行多套计算框架的时候才建议考虑YARN和Mesos。

(3)Worker Node:集群中可以运行Application代码的工作节点(Worker Node),相当于Hadoop的Slave节点。

(4)Executor:在Worker Node上为Application启动的一个工作进程,在进程中负责任务(Task)的运行,并且负责将数据存放在内存或磁盘上,在Executor内部通过多线程的方式(即线程池)并发处理应用程序的具体任务。

每个Application都有各自独立的Executors,因此应用程序之间是相互隔离的。

(5)Task:任务(Task)是指被Driver送到Executor上的工作单元。通常,一个任务会处理一个Partition的数据,每个Partition一般是一个HDFS的Block块的大小。

(6)Application:是创建了SparkContext实例对象的Spark用户程序,包含了一个Driver program和集群中多个Worker上的Executor。

(7)Job:和Spark的action对应,每个action,如count、savaAsTextFile等都会对应一个Job实例,每个Job会拆分成多个Stages,一个Stage中包含一个任务集(TaskSet),任务集中的各个任务通过一定的调度机制发送到工作单位(Executor)上并行执行。

Spark Standalone集群的部署采用典型的Master/Slave架构。其中,Master节点负责整个集群的资源管理与调度,Worker节点(也可以称Slave节点)在Master节点的调度下启动Executor,负责执行具体工作(包括应用程序以及应用程序提交的任务)。

5.1.2 Master启动的源码详解

Spark中各个组件是通过脚本来启动部署的。下面以脚本为入口点开始分析Master的部署。每个组件对应提供了启动的脚本,同时也会提供停止的脚本。停止脚本比较简单,在此仅分析启动脚本。

图书网:Spark大数据商业实战三部曲 内核解密 商业案例 性能调优pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

数据库

Kali Linux & BackTrack渗透测试实战pdf

本书基于编写团队的实际经验,围绕渗透测试进行了全面介绍,并选择“Kali Linux(包含BackTrack)” Live CD作为讲解工具。下载BackTrack Live CD和Kali Linu...
数据库

SQL进阶教程pdf

数据库工程师进阶中级实用指南 挖掘SQL常见技术的新用法 基于标准SQL编写 示例程序均可下载 本书适合具有一定SQL编程经验的工程师阅读 本书特色 1.转变面向过程语言的思维定式,学习SQL常见技术...
数据库

锋利的SQLpdf

锋利的SQL 作者:张洪举 锋利的SQL 出版社:人民邮电出版社 锋利的SQL 内容简介 《锋利的SQL》从基础、开发、性能调整和实战4个方面介绍了SQL技术及其应用,包括数据库管理、表管理、索引管理...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:2   其中:访客  2   博主  0
    • NOW
      NOW 9

      看看

      • 133
        133 9

        在哪下载啊