Spark大數據商業實戰三部曲 內核解密 商業案例 性能調優pdf

圖書網
圖書網
圖書網
10855
文章
1641
評論
2020年8月5日19:29:00 1 138

Spark大數據商業實戰三部曲 內核解密 商業案例 性能調優 作者:王家林,段智華,夏陽

Spark大數據商業實戰三部曲 內核解密 商業案例 性能調優 出版社:清華大學出版社

Spark大數據商業實戰三部曲 內核解密 商業案例 性能調優 內容簡介

《Spark大數據商業實戰三部曲:內核解密|商業案例|性能調優》基于Spark 2.2.X,以Spark商業案例實戰和Spark在生產環境下幾乎所有類型的性能調優為核心,以Spark內核解密為基石,分為上篇、中篇、下篇,對企業生產環境下的Spark商業案例與性能調優抽絲剝繭地進行剖析。上篇基于Spark源碼,從一個動手實戰案例入手,循序漸進地全面解析了Spark 2.2新特性及Spark內核源碼;中篇選取Spark開發中*具有代表的經典學習案例,深入淺出地介紹,在案例中綜合應用Spark的大數據技術;下篇性能調優內容基本完全覆蓋了Spark在生產環境下的所有調優技術。

Spark大數據商業實戰三部曲 內核解密 商業案例 性能調優 目錄

前言

上篇 內核解密

香蕉小视频app第1章 電光石火間體驗Spark 2.2開發實戰

香蕉小视频app1.1 通過RDD實戰電影點評系統入門及源碼閱讀

1.2 通過DataFrame和DataSet實戰電影點評系統

香蕉小视频app1.3 Spark 2.2源碼閱讀環境搭建及源碼閱讀體驗

第2章 Spark 2.2技術及原理

香蕉小视频app2.1 Spark 2.2綜述

香蕉小视频app2.2 Spark 2.2 Core

2.3 Spark 2.2 SQL

2.4 Spark 2.2 Streaming

2.5 Spark 2.2 MLlib

香蕉小视频app2.6 Spark 2.2 GraphX

香蕉小视频app第3章 Spark的靈魂:RDD和DataSet

3.1 為什么說RDD和DataSet是Spark的靈魂

3.2 RDD彈性特性七個方面解析

3.3 RDD依賴關系

3.4 解析Spark中的DAG邏輯視圖

3.5 RDD內部的計算機制

香蕉小视频app3.6 Spark RDD容錯原理及其四大核心要點解析

3.7 Spark RDD中Runtime流程解析

香蕉小视频app3.8 通過WordCount實戰解析Spark RDD內部機制

香蕉小视频app3.9 基于DataSet的代碼到底是如何一步步轉化成為RDD的

香蕉小视频app第4章 Spark Driver啟動內幕剖析

4.1 Spark Driver Program剖析

香蕉小视频app4.2 DAGScheduler解析

4.3 TaskScheduler解析

4.4 SchedulerBackend解析

4.5 打通Spark系統運行內幕機制循環流程

4.6 本章總結

第5章 Spark集群啟動原理和源碼詳解

香蕉小视频app5.1 Master啟動原理和源碼詳解

5.2 Worker啟動原理和源碼詳解

5.3 ExecutorBackend啟動原理和源碼詳解

香蕉小视频app5.4 Executor中任務的執行

香蕉小视频app5.5 Executor執行結果的處理方式

5.6 本章總結

香蕉小视频app第6章 Spark Application提交給集群的原理和源碼詳解

香蕉小视频app6.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

香蕉小视频app7.4 Sorted Based Shuffle

香蕉小视频app7.5 Tungsten Sorted Based Shuffle

香蕉小视频app7.6 Shuffle與Storage模塊間的交互

7.7 本章總結

香蕉小视频app第8章 Job工作原理和源碼詳解

8.1 Job到底在什么時候產生

8.2 Stage劃分內幕

8.3 Task全生命周期詳解

8.4 ShuffleMapTask和ResultTask處理結果是如何被Driver管理的

第9章 Spark中Cache和checkpoint原理和源碼詳解

香蕉小视频app9.1 Spark中Cache原理和源碼詳解

香蕉小视频app9.2 Spark中checkpoint原理和源碼詳解

第10章 Spark中Broadcast和Accumulator原理和源碼詳解

10.1 Spark中Broadcast原理和源碼詳解

10.2 Spark中Accumulator原理和源碼詳解

香蕉小视频app第11章 Spark與大數據其他經典組件整合原理與實戰

香蕉小视频app11.1 Spark組件綜合應用

11.2 Spark與Alluxio整合原理與實戰

11.3 Spark與Job Server整合原理與實戰

11.4 Spark與Redis整合原理與實戰

中篇 商業案例

香蕉小视频app第12章 Spark商業案例之大數據電影點評系統應用案例

12.1 通過RDD實現分析電影的用戶行為信息

香蕉小视频app12.2 通過RDD實現電影流行度分析

香蕉小视频app12.3 通過RDD分析各種類型的最喜愛電影TopN及性能優化技巧

香蕉小视频app12.4 通過RDD分析電影點評系統仿QQ和微信等用戶群分析及廣播背后機制解密

香蕉小视频app12.5 通過RDD分析電影點評系統實現Java和Scala版本的二次排序系統

12.6 通過Spark SQL中的SQL語句實現電影點評系統用戶行為分析

12.7 通過Spark SQL下的兩種不同方式實現口碑最佳電影分析

12.8 通過Spark SQL下的兩種不同方式實現最流行電影分析

香蕉小视频app12.9 通過DataFrame分析最受男性和女性喜愛電影TopN

香蕉小视频app12.10 純粹通過DataFrame分析電影點評系統仿QQ和微信、淘寶等用戶群

12.11 純粹通過DataSet對電影點評系統進行流行度和不同年齡階段興趣分析等

香蕉小视频app12.12 大數據電影點評系統應用案例涉及的核心知識點原理、源碼及案例代碼

12.13 本章總結

第13章 Spark 2.2實戰之Dataset開發實戰企業人員管理系統應用案例

香蕉小视频app13.1 企業人員管理系統應用案例業務需求分析

香蕉小视频app13.2 企業人員管理系統應用案例數據建模

13.3 通過SparkSession創建案例開發實戰上下文環境

香蕉小视频app13.4 通過map、flatMap、mapPartitions等分析企業人員管理系統

香蕉小视频app13.5 通過dropDuplicate、coalesce、repartition等分析企業人員管理系統

香蕉小视频app13.6 通過sort、join、joinWith等分析企業人員管理系統

香蕉小视频app13.7 通過randomSplit、sample、select等分析企業人員管理系統

香蕉小视频app13.8 通過groupBy、agg、col等分析企業人員管理系統

13.9 通過collect_list、collect_set等分析企業人員管理系統

香蕉小视频app13.10 通過avg、sum、countDistinct等分析企業人員管理系統

香蕉小视频app13.11 Dataset開發實戰企業人員管理系統應用案例代碼

13.12 本章總結

香蕉小视频app第14章 Spark商業案例之電商交互式分析系統應用案例

香蕉小视频app14.1 純粹通過DataSet進行電商交互式分析系統中特定時段訪問次數TopN

14.2 純粹通過DataSet分析特定時段購買金額Top10和訪問次數增長Top10

香蕉小视频app14.3 純粹通過DataSet進行電商交互式分析系統中各種類型TopN分析實戰詳解

14.4 電商交互式分析系統應用案例涉及的核心知識點原理、源碼及案例代碼

14.5 本章總結

香蕉小视频app第15章 Spark商業案例之NBA籃球運動員大數據分析系統應用案例

15.1 NBA籃球運動員大數據分析系統架構和實現思路

15.2 NBA籃球運動員大數據分析系統代碼實戰:數據清洗和初步處理

15.3 NBA籃球運動員大數據分析代碼實戰之核心基礎數據項編寫

香蕉小视频app15.4 NBA籃球運動員大數據分析完整代碼測試和實戰

15.5 NBA籃球運動員大數據分析系統應用案例涉及的核心知識點、原理、源碼

15.6 本章總結

香蕉小视频app第16章 電商廣告點擊大數據實時流處理系統案例

香蕉小视频app16.1 電商廣告點擊綜合案例需求分析和技術架構

香蕉小视频app16.2 電商廣告點擊綜合案例在線點擊統計實戰

香蕉小视频app16.3 電商廣告點擊綜合案例黑名單過濾實現

香蕉小视频app16.4 電商廣告點擊綜合案例底層數據層的建模和編碼實現(基于MySQL)

16.5 電商廣告點擊綜合案例動態黑名單過濾真正的實現代碼

16.6 動態黑名單基于數據庫MySQL的真正操作代碼實戰

香蕉小视频app16.7 通過updateStateByKey等實現廣告點擊流量的在線更新統計

16.8 實現每個省份點擊排名Top5廣告

16.9 實現廣告點擊Trend趨勢計算實戰

香蕉小视频app16.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 本章總結

香蕉小视频app第18章 使用Spark GraphX實現婚戀社交網絡多維度分析案例

18.1 Spark GraphX發展演變歷史和在業界的使用案例

18.2 Spark GraphX設計實現的核心原理

18.3 Table operator和Graph Operator

18.4 Vertices、edges、triplets

香蕉小视频app18.5 以最原始的方式構建Graph

18.6 第一個Graph代碼實例并進行Vertices、edges、triplets操作實戰

香蕉小视频app18.7 數據加載成為Graph并進行操作實戰

18.8 圖操作之Property Operators實戰

香蕉小视频app18.9 圖操作之Structural Operators實戰

18.10 圖操作之Computing Degree實戰

香蕉小视频app18.11 圖操作之Collecting Neighbors實戰

香蕉小视频app18.12 圖操作之Join Operators實戰

香蕉小视频app18.13 圖操作之aggregateMessages實戰

香蕉小视频app18.14 圖算法之Pregel API原理解析與實戰

18.15 圖算法之ShortestPaths原理解析與實戰

香蕉小视频app18.16 圖算法之PageRank原理解析與實戰

18.17 圖算法之TriangleCount原理解析與實戰

香蕉小视频app18.18 使用Spark GraphX實現婚戀社交網絡多維度分析實戰

香蕉小视频app18.19 婚戀社交網絡多維度分析案例代碼

18.20 本章總結

下篇 性能調優

第19章 對運行在YARN上的Spark進行性能調優

19.1 運行環境Jar包管理及數據本地性原理調優實踐

香蕉小视频app19.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操作

香蕉小视频app20.2 使用foreachPartition把Spark數據持久化到外部存儲介質

香蕉小视频app20.3 使用coalesce取代rePartition操作

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

香蕉小视频app20.5 使用treeReduce取代reduce的原理和源碼

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

20.7 reduceByKey高效運行的原理和源碼解密

香蕉小视频app20.8 使用AggregateByKey取代groupByKey的原理和源碼

20.9 Join不產生Shuffle的情況及案例實戰

香蕉小视频app20.10 RDD復用性能調優最佳實踐

香蕉小视频app第21章 Spark頻繁遇到的性能問題及調優技巧

香蕉小视频app21.1 使用BroadCast廣播大變量和業務配置信息原理和案例實戰

香蕉小视频app21.2 使用Kryo取代Scala默認的序列器原理和案例實戰

香蕉小视频app21.3 使用FastUtil優化JVM數據格式解析和案例實戰

21.4 Persist及checkpoint使用時的正誤方式

21.5 序列化導致的報錯原因解析和調優實戰

21.6 算子返回NULL產生的問題及解決辦法

香蕉小视频app第22章 Spark集群資源分配及并行度調優最佳實踐

香蕉小视频app22.1 實際生產環境下每個Executor內存及CPU的具體配置及原因

22.2 Spark并行度設置最佳實踐

香蕉小视频app第23章 Spark集群中Mapper端、Reducer端內存調優

23.1 Spark集群中Mapper端內存調優實戰

23.2 Spark集群中Reducer端內存調優實戰

第24章 使用Broadcast實現Mapper端Shuffle聚合功能的原理和調優實戰

24.1 使用Broadcast實現Mapper端Shuffle聚合功能的原理

香蕉小视频app24.2 使用Broadcast實現Mapper端Shuffle聚合功能調優實戰

香蕉小视频app第25章 使用Accumulator高效地實現分布式集群全局計數器的原理和調優案例

25.1 Accumulator內部工作原理

25.2 Accumulator自定義實現原理和源碼解析

香蕉小视频app25.3 Accumulator作全局計數器案例實戰

第26章 Spark下JVM性能調優最佳實踐

26.1 JVM內存架構詳解及調優

香蕉小视频app26.2 Spark中對JVM使用的內存原理圖詳解及調優

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

香蕉小视频app26.4 Spark下的JVM GC導致的Shuffle拉取文件失敗及調優方案

香蕉小视频app26.5 Spark下的Executor對JVM堆外內存連接等待時長調優

香蕉小视频app26.6 Spark下的JVM內存降低Cache內存占比的調優

香蕉小视频app第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 內存管理與二進制處理

香蕉小视频app28.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參數調優原理及實踐

香蕉小视频app29.7 Spark.Shuffle.file.buffer參數調優原理及實踐

29.8 Spark.Shuffle.io.maxRetries參數調優原理及實踐

香蕉小视频app29.9 Spark.Shuffle.io.retryWait參數調優原理及實踐

香蕉小视频app29.10 Spark.Shuffle.io.numConnectionsPerPeer參數調優原理及實踐

香蕉小视频app29.11 Spark.reducer.maxSizeInFlight參數調優原理及實踐

29.12 Spark.Shuffle.io.preferDirectBufs參數調優原理及實踐

香蕉小视频app29.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參數調優原理及實踐

香蕉小视频app第30章 Spark性能調優之數據傾斜調優一站式解決方案原理與實戰

30.1 為什么數據傾斜是分布式大數據系統的性能噩夢

香蕉小视频app30.2 數據傾斜解決方案之一:對源數據進行聚合并過濾掉導致傾斜的Keys

香蕉小视频app30.3 數據傾斜解決方案之二:適當提高Reducer端的并行度

香蕉小视频app30.4 數據傾斜解決方案之三:使用隨機Key實現雙重聚合

30.5 數據傾斜解決方案之四:使用Mapper端進行Join操作

香蕉小视频app30.6 數據傾斜解決方案之五:對傾斜的Keys采樣后進行單獨的Join操作

香蕉小视频app30.7 數據傾斜解決方案之六:使用隨機數進行Join

30.8 數據傾斜解決方案之七:通過擴容進行Join

香蕉小视频app30.9 結合電影點評系統進行數據傾斜解決方案的小結

第31章 Spark大數據性能調優實戰專業之路

香蕉小视频app31.1 大數據性能調優的本質和Spark性能調優要點分析

香蕉小视频app31.2 Spark性能調優之系統資源使用原理和調優最佳實踐

31.3 Spark性能調優之使用更高性能算子及其源碼剖析

31.4 Spark舊版本中性能調優之HashShuffle剖析及調優

香蕉小视频app31.5 Shuffle如何成為Spark性能殺手

香蕉小视频app31.6 Spark Hash Shuffle源碼解讀與剖析

香蕉小视频app31.7 Sort-Based Shuffle產生的內幕及其tungsten-sort背景解密

香蕉小视频app31.8 Spark Shuffle令人費解的6大經典問題

香蕉小视频app31.9 Spark Sort-Based Shuffle排序具體實現內幕和源碼詳解

香蕉小视频app31.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視角內存分配管理

香蕉小视频app31.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執行結果的處理方式。

香蕉小视频app5.1 Master啟動原理和源碼詳解

香蕉小视频app本節講解Master啟動的原理和源碼;Master HA雙機切換;Master的注冊機制和狀態管理解密等內容。

5.1.1 Master啟動的原理詳解

香蕉小视频appSpark應用程序作為獨立的集群進程運行,由主程序中的SparkContext 對象(稱為驅動程序)協調。Spark集群部署組件圖5-1所示。

香蕉小视频app圖5-1 Spark集群部署組件圖

香蕉小视频app其中各個術語及相關術語的描述如下。

(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,因此應用程序之間是相互隔離的。

香蕉小视频app(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啟動的源碼詳解

香蕉小视频appSpark中各個組件是通過腳本來啟動部署的。下面以腳本為入口點開始分析Master的部署。每個組件對應提供了啟動的腳本,同時也會提供停止的腳本。停止腳本比較簡單,在此僅分析啟動腳本。

圖書網:Spark大數據商業實戰三部曲 內核解密 商業案例 性能調優pdf

繼續閱讀
  • 我的微信
  • 掃一掃加好友
  • weinxin
  • 微信公眾號
  • 掃一掃關注
  • weinxin

有任何需求請前往→→→社區

自己動手做大數據系統pdf 數據庫

自己動手做大數據系統pdf

適讀人群 :?對大數據感興趣的院校師生。?對大數據有一定的基礎,還想進一步熟悉整個生態系統的大數據愛好者。 我們為什么需要自己動手做大數據系統?本書從OpenStack云平臺搭建、...
MySQL王者晉級之路pdf 數據庫

MySQL王者晉級之路pdf

適讀人群 :本書適合熟悉Linux系統且想提升MySQL水平的讀者。 資深數據庫專家十年沉淀 詳細解析MySQL數據庫體系結構 技術問答,助力面試
Spark SQL入門與實踐指南epub 數據庫

Spark SQL入門與實踐指南epub

適讀人群 :Spark初學者、Spark數據分析人員以及Spark程序開發人員 (1)講解Spark SQL背景知識、編程基礎 (2)通過一個工程實例讓讀者領略Spark SQL強...
匿名

發表評論

匿名網友 填寫信息

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

評論:1   其中:訪客  1   博主  0
    • NOW NOW 9

      看看