- Spark大數(shù)據(jù)編程實(shí)用教程
- 艾叔主編
- 2261字
- 2021-03-23 18:09:24
1.6 如何快速掌握Spark
本節(jié)內(nèi)容主要面向 Spark 初學(xué)者,特別是沒有開發(fā)經(jīng)驗(yàn)(基本上沒有寫過程序)的讀者,介紹 Spark 的快速學(xué)習(xí)路線圖,Spark 學(xué)習(xí)中要注意的地方,如何利用本書相關(guān)配套資源更高效地學(xué)習(xí)Spark以及初學(xué)者快速學(xué)習(xí)Spark的方法。
1.6.1 Spark學(xué)習(xí)的痛點(diǎn)
對(duì)初學(xué)者(特別是自學(xué)者)學(xué)習(xí)來說,Spark學(xué)習(xí)有以下兩大痛點(diǎn)。
1.頭緒太多,不知道從哪學(xué)
從 Spark 的技術(shù)棧可以看到,涉及的技術(shù)從操作系統(tǒng)到外部組件、Spark 框架、交互工具、編程語言,涉及多個(gè)層次,每個(gè)層次又包括多個(gè)技術(shù)和知識(shí)點(diǎn),對(duì)初學(xué)者來說,可能只是對(duì)其中的部分技術(shù)有一些模糊的認(rèn)識(shí),并不會(huì)形成1-7圖中那么全面、清晰的層次。
這樣,就會(huì)導(dǎo)致學(xué)習(xí)的時(shí)候,到底是從哪開始?比如確定了先學(xué)習(xí) Linux,那么 Linux的發(fā)行版又選擇哪個(gè)好?Linux 的命令又需要學(xué)習(xí)哪些?如果要想學(xué)得全面,僅《鳥哥的Linux私房菜》系列書可能就夠?qū)W1、2年的,那么又要學(xué)到哪個(gè)程度?又比如Scala語言,僅簡化版的《快學(xué) Scala》就有 300 多頁,10 多章,又該從哪開始?學(xué)習(xí)哪些?學(xué)到什么程度?Spark框架除了Spark Core以外,還有GraphX、Streaming、Spark SQL和SparkR等,它們是否都要一個(gè)一個(gè)的學(xué)?還是只選其中幾個(gè)學(xué)?如果學(xué),那又該選擇哪幾個(gè)最好呢?
所以,在 Spark 初學(xué)者的道路上,處處都存在著選擇,如何在紛繁復(fù)雜的路徑中,選擇一條較優(yōu)的路徑,對(duì)初學(xué)者來說,通常是很困難的事情。
2.處處掣肘,起步艱難
Spark 初學(xué)者在起步階段會(huì)遇到各種各樣的問題,例如,Linux 的各種權(quán)限問題、命令使用問題、Spark 環(huán)境構(gòu)建的各種配置問題、Scala 學(xué)習(xí)中的各種語法問題、Spark 編程中的各種異常等,都是橫亙?cè)诔鯇W(xué)者面前的一座座大山。初學(xué)者往往費(fèi)盡精力,解決了一個(gè)問題,結(jié)果又冒出了更多的問題,這種心力交瘁,看不到盡頭的感覺在起步階段十分常見。
1.6.2 Spark快速學(xué)習(xí)路線圖
Spark 學(xué)習(xí)沒有捷徑,任何宣稱不需要下功夫就能輕松掌握 Spark 的說法,都是不靠譜、不負(fù)責(zé)任的。這里提到的快速學(xué)習(xí)路線,可讓讀者付出更有效,少踩坑,少做無用功,但不管怎樣,都需要下功夫,不斷實(shí)踐。
1.Spark快速學(xué)習(xí)路線圖
Spark學(xué)習(xí)要區(qū)分以下兩種情況。
●必須要學(xué)習(xí)的內(nèi)容。對(duì)于這部分內(nèi)容,從一開始就要把基礎(chǔ)打好,必須牢固掌握。
● 可以后續(xù)再學(xué)的內(nèi)容。對(duì)于這部分內(nèi)容,只需要清楚其概念,心中有數(shù)就可以了,待到需要時(shí),能迅速找到資料,確定學(xué)習(xí)方法,再快速自學(xué)。
基于上面的劃分,列出Spark快速學(xué)習(xí)的路線圖,如圖1-8所示。

圖1-8 Spark學(xué)習(xí)路線圖
●圖1-8中列出的內(nèi)容屬于必學(xué)部分;
●左側(cè)列為要學(xué)習(xí)的知識(shí)模塊,箭頭方向表示學(xué)習(xí)順序。
●右側(cè)為每個(gè)知識(shí)模塊對(duì)應(yīng)的知識(shí)點(diǎn)和要求,或者說是學(xué)習(xí)完該模塊后,要達(dá)到的目標(biāo)。
2.注意事項(xiàng)(重要)
圖1-8中的內(nèi)容相對(duì)1.3節(jié)Spark技術(shù)棧中所列的技術(shù)做了大幅簡化,這并不是說沒有列出的內(nèi)容不需要學(xué)習(xí)或不重要,而是說,學(xué)習(xí)時(shí)可以先按照上圖進(jìn)行系統(tǒng)學(xué)習(xí),可以由易到難,快速構(gòu)建一個(gè)最簡的Spark知識(shí)體系。
這個(gè)最簡 Spark 知識(shí)體系是學(xué)習(xí)后續(xù) Spark 其他知識(shí)點(diǎn)模塊的基礎(chǔ)。一旦構(gòu)建了這個(gè)知識(shí)體系,其他的 Spark 知識(shí)點(diǎn),就可以根據(jù)需要參考本書,做針對(duì)性的學(xué)習(xí)。如果不使用上面的路線圖,打亂順序,多點(diǎn)出擊,或者全盤包攬的話,實(shí)踐證明效果往往很不理想。
1.6.3 Spark學(xué)習(xí)中的關(guān)鍵點(diǎn)
下面列出Spark學(xué)習(xí)中需要注意的點(diǎn)或原則,它們可以使得后續(xù)的學(xué)習(xí)更加高效。
●看到結(jié)果比明白原理更重要;
●動(dòng)手比看書更重要;
●暫時(shí)理解不了的原理,或者找不到原因的問題,可以先放下,繼續(xù)往后學(xué);
●RDD、DataFrame和Dataset是Spark最重要的3類數(shù)據(jù)結(jié)構(gòu);
●RDD永遠(yuǎn)不會(huì)過時(shí),它只是逐漸退居幕后;
●DataFrame和Dataset正在成為Spark與外界打交道的統(tǒng)一接口;
●結(jié)構(gòu)化大數(shù)據(jù)處理在Spark中應(yīng)用越來越多,Spark SQL越來越重要;
●各種數(shù)據(jù)格式轉(zhuǎn)換、數(shù)據(jù)源的連接非常重要;
●SparkR、流數(shù)據(jù)處理、GraphX和MLlib可以在后續(xù)需要的時(shí)候再去學(xué)習(xí)。
1.6.4 利用本書相關(guān)資源高效學(xué)習(xí)Spark
本書提供了相當(dāng)豐富的配套資源,這些資源按照 Spark 的學(xué)習(xí)階段分為 3 類,如圖 1-9所示,分別是Spark學(xué)習(xí)前置資源、隨書資源和進(jìn)階資源,具體描述如下。

圖1-9 本書配套資源圖
●前置資源指本書學(xué)習(xí)前的配套資源,主要包括艾叔(本書主要作者)主講的 VMware虛擬機(jī)、Linux、Shell 編程和 HDFS 免費(fèi)課程,這些課程都是艾叔多年經(jīng)驗(yàn)的總結(jié),只講最有用、使用最為頻繁的知識(shí)點(diǎn),因此每門課程的學(xué)習(xí)時(shí)間都不長,基于這些課程,初學(xué)者無須查閱其他資料,就可以快速打下Spark學(xué)習(xí)的基礎(chǔ);
● 隨書資源是指本書學(xué)習(xí)中的配套資源,包括艾叔編寫的《零基礎(chǔ)快速入門 Scala》電子書、《Spark 大數(shù)據(jù)編程實(shí)踐教程》、示例代碼及數(shù)據(jù)、練習(xí)題及答案。這些資源可以幫助我們更快、更全面地掌握《Spark大數(shù)據(jù)編程實(shí)用教程》的內(nèi)容;
●進(jìn)階資源是指本書學(xué)習(xí)中或?qū)W習(xí)后用于提升 Spark 編程水平的資源,包括艾叔主講的兩個(gè)企業(yè)級(jí)的實(shí)戰(zhàn)項(xiàng)目課程《一鍵部署:基于 Docker 的 Hadoop 集群》和《IDEA+Spark 快速入門實(shí)戰(zhàn)》,以及艾叔在編程方面的經(jīng)驗(yàn)和總結(jié),這些資源對(duì)加深對(duì)本書的理解,提升Spark編程實(shí)戰(zhàn)能力,迅速累積項(xiàng)目經(jīng)驗(yàn)非常有幫助。
1.隨書資源的獲取
隨書資源是一個(gè) rar 格式的壓縮包,文件名是“Spark 大數(shù)據(jù)編程實(shí)用教程配套資料.rar”,該壓縮包中的資料如表 1-1 所示,包括艾叔總結(jié)多年經(jīng)驗(yàn),專門為 Scala 編程初學(xué)者所編寫的《零基礎(chǔ)快速入門 Scala》電子書,本書的配套實(shí)踐教程《Spark 大數(shù)據(jù)編程實(shí)踐教程》、《課程練習(xí)及答案》和課程示例代碼。
表1-1 本書配套資料包內(nèi)容列表

2.前置資源、進(jìn)階資源以及其他資源的獲取
前置資源可以在網(wǎng)易云課堂的“艾叔編程”中獲取,獲取方法如表1-2的第3項(xiàng)所示;進(jìn)階資源可以在51CTO學(xué)院網(wǎng)站搜索“文艾”獲取,獲取方法如表1-2的第4、5項(xiàng)所示。其他資源包括:作者微信號(hào)、本書公眾號(hào)、大數(shù)據(jù)學(xué)習(xí)網(wǎng)站,獲取方法如表 1-2 的第 1、2、6項(xiàng)所示。
表1-2 本書其他資源列表

1.6.5 本書所使用的軟件和版本
學(xué)習(xí)本書時(shí),各項(xiàng)軟件請(qǐng)務(wù)必保持和表1-3中一致的版本。
表1-3 本書軟件及版本表

- 漫話大數(shù)據(jù)
- 同步:秩序如何從混沌中涌現(xiàn)
- 企業(yè)數(shù)字化創(chuàng)新引擎:企業(yè)級(jí)PaaS平臺(tái)HZERO
- Greenplum:從大數(shù)據(jù)戰(zhàn)略到實(shí)現(xiàn)
- 卷積神經(jīng)網(wǎng)絡(luò)的Python實(shí)現(xiàn)
- 業(yè)務(wù)數(shù)據(jù)分析:五招破解業(yè)務(wù)難題
- 數(shù)據(jù)結(jié)構(gòu)與算法(C語言版)
- Microsoft Power BI數(shù)據(jù)可視化與數(shù)據(jù)分析
- 數(shù)據(jù)庫程序員面試筆試真題庫
- 數(shù)據(jù)庫技術(shù)及應(yīng)用教程
- ZeroMQ
- 基于OPAC日志的高校圖書館用戶信息需求與檢索行為研究
- 數(shù)據(jù)科學(xué)工程實(shí)踐:用戶行為分析與建模、A/B實(shí)驗(yàn)、SQLFlow
- 重復(fù)數(shù)據(jù)刪除技術(shù):面向大數(shù)據(jù)管理的縮減技術(shù)
- 數(shù)據(jù)庫應(yīng)用系統(tǒng)技術(shù)