溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

大數(shù)據(jù)分布式計算spark技術(shù)如何理解

發(fā)布時間:2022-01-10 09:53:46 來源:億速云 閱讀:79 作者:柒染 欄目:大數(shù)據(jù)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)大數(shù)據(jù)分布式計算spark技術(shù)如何理解,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

這個系統(tǒng)學習spark的名稱是:spark2.x 由淺入深深到底系列知識。所謂的"淺"是指一定的場景或者問題,然后"入深"就是這個解決這個場景以及問題的原理是什么,然后再“深”就是指這些場景以及問題的原理在我們的代碼層面上是怎么實現(xiàn)的,就是會涉及到源碼的閱讀,最后“到底”就是我們的實踐了,然后用實踐產(chǎn)生價值。

以下是系統(tǒng)學習spark的步驟:

一、spark2.x 由淺入深深到底系列一:正確理解spark

只有正確理解spark了,我們才能確定學習spark的方向和思路,這個是指路燈。

這個我們以視頻的方式給出,視頻的鏈接URL是:http://edu.51cto.com/course/10932.html 

在這個視頻中,我們會弄明白下面的幾個問題:

1: 徹底弄懂什么是RDD及其特點

2: 徹底弄懂什么是spark的分布式內(nèi)存計算

3: 徹底弄懂spark是怎樣解決各個領(lǐng)域問題,以及在解決各個領(lǐng)域問題的時候的特點

同時,我們會徹底搞明白下面的兩個問題:

1: spark是基于內(nèi)存的,MapReduce是基于磁盤的,所以spark比MapReduce快,真的是這樣的嗎?

2: spark的分布式內(nèi)存是怎么樣合理的使用的,或者說用在哪些場景下是合理的

二、spark2.x 由淺入深深到底系列二:spark core RDD Api

對spark core中的RDD中的每一個scala api的用法、用的過程中需要注意的點以及每一個api的原理都做了系統(tǒng)的深入的講解

這個我們以視頻的方式給出,視頻的鏈接URL是:http://edu.51cto.com/course/11058.html 

這個視頻中的內(nèi)容包括如下:

第一章: 課程內(nèi)容以及課程需要的環(huán)境的描述

第二章: 了解scala

了解scala的基本概念,包括:

1、scala之面向?qū)ο缶幊?/p>

2、scala之函數(shù)式編程

3、scala的兩個特征:閉包和數(shù)據(jù)結(jié)構(gòu)Option

第三章: RDD概念

根據(jù)RDD的特點,進而提出RDD的定義以及RDD的優(yōu)勢

第四章: RDD的創(chuàng)建

詳細講解創(chuàng)建RDD的api,并且詳細分析了parallelize和makeRDD兩個api的原理和差異

第五章: RDD的依賴

RDD的依賴的設計,并詳細講解了為什么RDD這么設計依賴

第六章: RDD的分區(qū)

1、用原理圖的方式展示了RDD分區(qū)器HashPartitioner的工作原理

2、講解利用分區(qū)器是怎么樣進行性能優(yōu)化的

3、結(jié)合原理圖和源代碼講解RangePartitioner的工作原理以及使用場景

4、結(jié)合實例自定義RDD的分區(qū)器Partitioner

5、RDD分區(qū)數(shù)控制api - coalesce 和 repartition的使用場景以及兩者的區(qū)別

6、結(jié)合原理圖和源代碼講解coalesce的原理

第七章: 單類型RDD的api詳解

1、單類型RDD的transformation api的使用及其需要注意的點,包括map, mapPartition, flatMap等api

2、MapPartitionsRDD的原理代碼詳解

3、RDD的采樣api(sample等)介紹

4、RDD分層采樣api(sampleByKey等)的介紹

5、RDD的pipe api的使用方式以及使用過程中需要注意的點

6、RDD的pipe的原理深入講解

7、單類型RDD的基本action api的講解,包括foreach、first、collect等

8、單類型RDD基本action api講解,包括reduce、fold以及aggregate等。同時分析了reduce和treeReduce以及aggregate和treeAggregate的原理和區(qū)別

第八章 key-value類型RDD的api詳解

1、combineBykey的七大參數(shù)的詳解

2、ShuffleRDD的原理詳解

3、基于combineByKey的api詳解,包括aggregateByKey、reduceByKey、foldByKey以及groupByKey等

4、combineBykey實戰(zhàn)以及使用過程中需要注意的點

5、reduceByKey和groupByKey的對比,同時包含了reduce和fold的對比

6、cogroup api的感官認識,包括基于cogroup實現(xiàn)的join、leftOuterJoin、rightOuterJoin、fullOuterJoin以及subtractByKey等api

7、通過原理圖和源代碼詳解cogroup原理

8、join等api的原理實現(xiàn)

9、subtractByKey的原理

10、sortedByKey原理,利用RangePartitioner實現(xiàn)優(yōu)化

11、count、countByKey等計數(shù)api,包括近似估算等api

第九章: 二元RDD操作

1、union的使用及其原理

2、intersection的使用及其原理

3、cartesian笛卡爾積的使用及其原理

4、zip的使用及其原理

第十章: persist 和 checkpoint機制

1、RDD的緩存機制,即persist

2、checkpoint的作用和實現(xiàn)流程

3、checkpoint實現(xiàn)原理

4、localCheckpoint和checkpoint的優(yōu)缺點

第十一章: Spark讀寫外部數(shù)據(jù)源

1、spark支持的讀寫存儲系統(tǒng)

2、HadoopRDD的原理和實現(xiàn)

3、spark支持的通用的文件格式,重點會講述了SequenceFile的數(shù)據(jù)結(jié)構(gòu)以及需要注意的點,包括text file、CSV file、Sequence file 、 Object file以及MapFile等

4、spark支持的hbase file的讀寫代碼

5、行式存儲文件格式(avro)和列式存儲文件格式(parquet)讀寫的詳細講解

6、spark對二進制數(shù)據(jù)的讀寫的api詳解

第十二章: broadcast和accumulator兩個api的詳解

第十三章: RDD項目實戰(zhàn)

以本人真實參加的項目來串聯(lián)我們這個課程所將到的api

三、spark2.x 由淺入深深到底系列三:spark core正確提交spark應用

我們一般用spark-submit來提交一個spark應用,所以我們需要理解透spark-submit中的每一個參數(shù)的用法及其原理,以達到正確提交各種業(yè)務場景下的spark應用。在理解透了spark-submit中的每一個參數(shù)的用法及其原理后,我們需要理解透spark-submit的原理,這個也是打開深入學習spark的大門

這個我們以視頻的方式給出,視頻的鏈接URL是:http://edu.51cto.com/course/11132.html 

這個視頻的內(nèi)容包括:

第一章:課程內(nèi)容簡介

第二章:java基礎知識

2.1 java命令啟動JVM

2.2 java ProcessBuilder啟動JVM

第三章:詳解spark-submit的每一個參數(shù)

3.1 spark-submit感官認識

3.2 master和deploy-mode參數(shù)詳解

3.3 --conf參數(shù)詳解

3.4 driver相關(guān)參數(shù)的詳解

3.5 executor相關(guān)參數(shù)的詳解

3.6 --jars參數(shù)詳解

3.7 --package相關(guān)參數(shù)詳解

3.8 --files參數(shù)詳解

3.9 --queue相關(guān)參數(shù)的詳解

3.10 python spark應用的正確提交

3.11 利用SparkLauncher在代碼中提交spark應用

第四章 spark-submit原理

4.1 spark腳本系統(tǒng)

4.2 spark-class腳本原理以及實現(xiàn)

4.3 spark-daemon腳本原理以及實現(xiàn)

4.4 SparkSubmit原理以及源碼分析

四、spark2.x 由淺入深深到底系列四:spark core - scheduler on driver

由淺入深的講解spark應用是怎么樣拆分成task的,然后怎么在集群中調(diào)度的,以及深入講解了task調(diào)度的過程中的本地性規(guī)則、推測機制以及黑名單機制等。

這章比較偏原理,但是我會以一種通俗易懂的話語來講透這些原理,你會發(fā)現(xiàn),你覺得很復雜的東東其實都是那么的簡單

這個我們以視頻的方式給出:大概十一之前會發(fā)布視頻

大致的內(nèi)容包括(可能會變,以發(fā)布出來的視頻為準):

第一章:課程內(nèi)容以及環(huán)境

第二章:一個spark應用中的調(diào)度

2.1 DAG的劃分

2.2 stage的調(diào)度流程原理

2.3 task的延遲調(diào)度及性能調(diào)優(yōu)

2.4 task的推測機制及其使用場景

2.5 Blacklist機制及其使用場景

2.6 資源調(diào)度及其管理

第三章:多個spark應用的調(diào)度

3.1 資源動態(tài)分配的前提

3.2 資源動態(tài)分配的機制

五、spark2.x 由淺入深深到底系列五:spark core - shuffle實現(xiàn)原理以及調(diào)優(yōu)

在這個課程中會以通俗易懂的話語徹底說清楚spark的shuffle的實現(xiàn)原理以及調(diào)優(yōu)過程

這個課程的內(nèi)容大致會涉及到:內(nèi)存管理原理、存儲管理原理、mapoutTracker實現(xiàn)原理以及shuffle管理原理

這個我們以視頻的方式給出:發(fā)布時間待定

六、spark2.x 由淺入深深到底系列六:spark core RDD java api

這個是對系列二的一個補充,會詳細介紹RDD java api的實現(xiàn)原理,以及api的用法

這個以博客的形式給出,博客地址為:http://7639240.blog.51cto.com/7629240/d-1 

會時時更新,以達到將自己所有知道的都寫進去

七、spark2.x 由淺入深深到底系列七:spark core RDD python api

這個是對系列二的一個補充,會詳細介紹RDD python api的實現(xiàn)原理,以及api的用法

這個以博客的形式給出,博客地址為:http://7639240.blog.51cto.com/7629240/d-2 

這個目前還不是很完善,有空會時時更新

八、 spark2.x 由淺入深深到底系列八:spark core必備基礎知識

本課程主要會深入理解spark core的三個基礎組件以及我們深入理解spark需要的部分的基礎java知識

目標:

1: spark的安全管理

2: spark的序列化機制

3: spark的RPC機制,包括部分的nio的知識點

這個以博客的形式給出,博客地址為:待定

九、 spark2.x 由淺入深深到底系列九:spark core集群資源管理機制

本課程會詳細的理解spark的三種資源管理機制:

1: spark自帶的standalone模式,以及深入講解standalone的實現(xiàn)原理

2: hadoop的yarn模式,這節(jié)課使的我們徹底弄明白spark是怎么基于yarn來跑任務的,以及我們怎么樣去自己實現(xiàn)一個往yarn上提交應用的客戶端

3: mesos模式,這節(jié)課使的我們徹底弄明白spark是怎么基于mesos來跑任務的,以及我們怎么樣去自己實現(xiàn)一個往mesos上提交應用的客戶端

上述就是小編為大家分享的大數(shù)據(jù)分布式計算spark技術(shù)如何理解了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI