《Spark大數(shù)據(jù)技術(shù)與應(yīng)用案例教程》完整全套教學(xué)課件_第1頁(yè)
《Spark大數(shù)據(jù)技術(shù)與應(yīng)用案例教程》完整全套教學(xué)課件_第2頁(yè)
《Spark大數(shù)據(jù)技術(shù)與應(yīng)用案例教程》完整全套教學(xué)課件_第3頁(yè)
《Spark大數(shù)據(jù)技術(shù)與應(yīng)用案例教程》完整全套教學(xué)課件_第4頁(yè)
《Spark大數(shù)據(jù)技術(shù)與應(yīng)用案例教程》完整全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩1198頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Spark

大數(shù)據(jù)技術(shù)與應(yīng)用案例教程主講教師:項(xiàng)目一

Spark入門(mén)項(xiàng)目二

Spark

RDD——彈性分布式數(shù)據(jù)集項(xiàng)目三

Spark

SQL——結(jié)構(gòu)化數(shù)據(jù)處理項(xiàng)目四

Spark

Streaming——實(shí)時(shí)計(jì)算框架目

錄項(xiàng)目五

Sp

ark

M

Llib——機(jī)器學(xué)習(xí)庫(kù)項(xiàng)目六

Gra

ph

Fr

a

mes——圖計(jì)算框架項(xiàng)目七

綜合案例——分析銀行個(gè)人信貸業(yè)務(wù)數(shù)據(jù)目

錄項(xiàng)目一S

PPT

門(mén)課件k輯r可a全套p任務(wù)一

搭建Sp

ar

k單機(jī)環(huán)境任

務(wù)

建Sp

ar

k集群環(huán)境任務(wù)三開(kāi)發(fā)并運(yùn)行應(yīng)用程序隨著互聯(lián)網(wǎng)和物聯(lián)網(wǎng)技術(shù)的發(fā)展,人們產(chǎn)生和創(chuàng)造的數(shù)據(jù)呈爆炸式增長(zhǎng)。傳統(tǒng)的大數(shù)據(jù)處理框架HadoopMapReduce已無(wú)法滿(mǎn)足人們對(duì)大規(guī)模數(shù)據(jù)的處理需求,因此一個(gè)更加高效的、用于

處理大規(guī)模數(shù)據(jù)的、開(kāi)源的分布式計(jì)算框架Spark誕生了。本項(xiàng)目將介紹Spark的相關(guān)知識(shí),搭建Spark單機(jī)環(huán)境和集群環(huán)境,開(kāi)發(fā)

并運(yùn)行應(yīng)用程序。項(xiàng)

導(dǎo)

讀第6頁(yè)口了解Spark的發(fā)展歷程、特點(diǎn)與應(yīng)用場(chǎng)景??谑煜park的生態(tài)系統(tǒng)、運(yùn)行架構(gòu)與運(yùn)行基本流程??谡莆誗park的部署模式、PySpark命令與運(yùn)行應(yīng)用程序的方法。知

識(shí)

標(biāo)第7頁(yè)口了解Spark的發(fā)展歷程、特點(diǎn)與應(yīng)用場(chǎng)景??谑煜park的生態(tài)系統(tǒng)、運(yùn)行架構(gòu)與運(yùn)行基本流程??谡莆誗park的部署模式、PySpark命令與運(yùn)行應(yīng)用程序的方法。技

標(biāo)第8頁(yè)口增強(qiáng)遵守規(guī)則的意識(shí),養(yǎng)成按規(guī)矩行事的習(xí)慣??诩訌?qiáng)基礎(chǔ)知識(shí)的學(xué)習(xí),實(shí)現(xiàn)從量變到質(zhì)變的轉(zhuǎn)化,為個(gè)人的長(zhǎng)遠(yuǎn)發(fā)展打下基礎(chǔ)。素

質(zhì)

標(biāo)第9頁(yè)任務(wù)一

Sp

ar

k

機(jī)

環(huán)

U不同的運(yùn)行環(huán)境已搭建完成,接下來(lái)就可以開(kāi)發(fā)并運(yùn)行應(yīng)用程序了。在此之前,需要選擇合適的編程語(yǔ)言和開(kāi)發(fā)工具,學(xué)習(xí)常用的PySpark命令,并掌握采用不同的部署模式運(yùn)行應(yīng)用程序的方法。本任務(wù)結(jié)合身份證戶(hù)籍地查詢(xún)案例,在PyCharm

中開(kāi)發(fā)Spark應(yīng)用程序,并分別在Spark本地環(huán)境和集群環(huán)境中運(yùn)行應(yīng)用程序。任

務(wù)

第11頁(yè)Spark官方網(wǎng)站對(duì)其的定義是“ApacheSpark是專(zhuān)為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎”。由于Spark是UC

BerkeleyAMPlaboratory(加

州大學(xué)伯克利分校的AMP實(shí)驗(yàn)室)開(kāi)源的類(lèi)Hadoop

MapReduce的通用并行框架,是一個(gè)基于內(nèi)存計(jì)算、支持分布式計(jì)算和并行計(jì)算的大數(shù)據(jù)處理框架。第12頁(yè)搭建S

p

a

rk單機(jī)環(huán)境一

、S

p

a

r

k的發(fā)展歷程時(shí)間點(diǎn)說(shuō)明2009年提供一個(gè)更快、更靈活、更易用的分布式計(jì)算框架,以便更好地進(jìn)行大規(guī)模數(shù)據(jù)處理和機(jī)器學(xué)習(xí)等任務(wù)2010年Spark正式發(fā)布開(kāi)源代碼2013年Spark成為Apache軟件基金會(huì)的孵化器項(xiàng)目,解決了一些bug,增加了新的功能,并改進(jìn)了可用性問(wèn)題2014年Spark成為Apache軟件基金會(huì)的頂級(jí)開(kāi)源項(xiàng)目之一,并發(fā)布了第一個(gè)穩(wěn)定版本Spark

1.0.0Spark提供了豐富的工具和API,

可以用于結(jié)構(gòu)化數(shù)據(jù)處理、流數(shù)據(jù)處理、機(jī)器學(xué)習(xí)及圖形處理等多種場(chǎng)景。Spark的發(fā)展歷程如表所示。一、Sp

ark的發(fā)展歷程搭建S

p

a

rk單機(jī)環(huán)境第13頁(yè)時(shí)間點(diǎn)說(shuō)

明2015年Spark1.5.x系列版本發(fā)布,提升了Spark的性能,增加了一些機(jī)器學(xué)習(xí)算法和工具等

使得Spark變得更為全面和強(qiáng)大2016年Spark2.0.x系列版本發(fā)布,大幅度改進(jìn)了API兼容性和查詢(xún)優(yōu)化器,支持結(jié)構(gòu)化的

流數(shù)據(jù)處理2017年Spark2.2.x系列版本發(fā)布,更新內(nèi)容主要針的是系統(tǒng)的可用性、穩(wěn)定性及代碼潤(rùn)色2018年Spark2.4.x系列版本發(fā)布,進(jìn)一步改進(jìn)了流數(shù)據(jù)處理和機(jī)器學(xué)習(xí)功能,并集成了更

多的深度學(xué)習(xí)框架一、S

p

a

r

k的發(fā)展歷程搭建S

p

a

rk單機(jī)環(huán)境第14頁(yè)時(shí)間點(diǎn)說(shuō)

明2020年Spark3.0.0版本發(fā)布,能夠更好地支持Python和R語(yǔ)言,并提供了更強(qiáng)大的分布式SQL查詢(xún)引擎。加強(qiáng)了與Apache

Arrow、Delta

Lake等數(shù)據(jù)處理技術(shù)的集成2021年Spark3.1.1版本發(fā)布,提升了Python的可用性,增強(qiáng)了ANSI

SQL兼容性,加強(qiáng)了查

詢(xún)優(yōu)化等2022年Spark3.3.0版本發(fā)布,提升了查詢(xún)性能,簡(jiǎn)化了從傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)的遷移,提升效率2023年Spark3.4.0版本引入Python客戶(hù)端,增強(qiáng)結(jié)構(gòu)化數(shù)據(jù)流,增加Pandas

API的覆蓋范

圍,提供Numpy輸入支持,通過(guò)內(nèi)存分析提高開(kāi)發(fā)效率和可調(diào)用性等一

、Sp

a

r

k的發(fā)展歷程搭建S

p

a

rk單機(jī)環(huán)境第15頁(yè)Spark是與HadoopMapReduce類(lèi)似的通用并行計(jì)算框架,它擁有HadoopMapReduce所具有的優(yōu)點(diǎn),如高可靠、高擴(kuò)展、高容錯(cuò)等。同時(shí),Spark還兼容HDFS、Hive

等,可以很

好地與Hadoop系統(tǒng)融合,從而彌補(bǔ)HadoopMapReduce高延遲的性能缺點(diǎn)。Spark的特點(diǎn)可

以歸納為以下幾點(diǎn):第16頁(yè)二

、S

p

a

r

k的

點(diǎn)搭建Spar

k單機(jī)環(huán)境Spark基于內(nèi)存的運(yùn)算效率快了100倍以上,基于磁盤(pán)的運(yùn)算效率快了10倍以上。Spark充分利用內(nèi)存對(duì)數(shù)據(jù)進(jìn)行計(jì)算,減少了對(duì)磁盤(pán)的讀寫(xiě)操作,從而提高了Spark的計(jì)算效率。搭建S

p

a

rk單機(jī)環(huán)境二

、Sp

a

r

k的特點(diǎn)速

快第17頁(yè)(1)Spark支持Python、Scala、Java和R等多種編程語(yǔ)言,并提供了80多種高階算法。此外,研究人員可以通過(guò)PySpark或SparkShell進(jìn)行交互式編程。搭建Spark單機(jī)環(huán)境二

、Sp

a

rk的特點(diǎn)用

好(2)易第18頁(yè)Spark提供了多種完善的組件,如交互式查詢(xún)(Spark

SQL)、實(shí)時(shí)流處理(SparkStreaming)、機(jī)器學(xué)習(xí)庫(kù)(SparkMLlib)和圖計(jì)算(SparkGraphX)。Spark

支持上述組件在同一個(gè)應(yīng)用程序中無(wú)縫地結(jié)合使用,減少了大數(shù)據(jù)開(kāi)發(fā)和維護(hù)的人力

成本和部署平臺(tái)的物力成本。通

性(3)強(qiáng)搭

建S

p

a

rk單機(jī)環(huán)境二

、Sp

a

r

k的特點(diǎn)第19頁(yè)Spark可以運(yùn)行于獨(dú)立的集群模式中,也可以運(yùn)行于Hadoop中,還可以運(yùn)行于Amazon

EC2(亞馬遜彈性計(jì)算云)等云環(huán)境中。對(duì)于數(shù)據(jù)源而言,Spark可以從

HDFS、HBase

、Cassandra、Hive等多種途徑讀取數(shù)據(jù)。(4)

運(yùn)

樣搭建Sp

a

rk單機(jī)環(huán)境二

、Sp

a

r

k的特點(diǎn)第20頁(yè)Spark功能強(qiáng)大,其應(yīng)用場(chǎng)景也十分廣泛。從宏觀角度出發(fā),可以將Spark的應(yīng)用場(chǎng)景歸納為數(shù)據(jù)科學(xué)應(yīng)用和數(shù)據(jù)處理應(yīng)用。第21頁(yè)三

、S

p

a

r

k的

應(yīng)

場(chǎng)

景搭建Spa

rk單機(jī)環(huán)境口Spark可以用來(lái)進(jìn)行數(shù)據(jù)分析和建模。口在數(shù)據(jù)分析方面,Spark提供了豐富的API來(lái)支持各種數(shù)據(jù)操作,如數(shù)據(jù)清洗、轉(zhuǎn)換、篩選、聚合等??跀?shù)據(jù)科學(xué)家對(duì)數(shù)據(jù)進(jìn)行初步分析,并從中發(fā)現(xiàn)有價(jià)值的信息。第22頁(yè)三

、S

pa

r

k的

應(yīng)

場(chǎng)

景搭建Spa

r

k單機(jī)環(huán)境數(shù)據(jù)科學(xué)應(yīng)用數(shù)據(jù)科學(xué)應(yīng)用口

在建模方面,Spark提供了機(jī)器學(xué)習(xí)庫(kù)MLlib,該庫(kù)提供了一系列算法和工具,包括常見(jiàn)的機(jī)器學(xué)習(xí)算法、特征化工具等???/p>

提供了流式處理庫(kù)Streaming和圖處理庫(kù)GraphX,這些庫(kù)也可以用來(lái)解決許多數(shù)據(jù)科學(xué)應(yīng)用中的問(wèn)題。搭建Spa

r

k單機(jī)環(huán)境三

、S

p

a

r

k的應(yīng)用場(chǎng)景第23頁(yè)□Spark可以實(shí)現(xiàn)快速查詢(xún)、實(shí)時(shí)日志采集處理、業(yè)務(wù)推薦、定制廣告、用戶(hù)圖計(jì)算等功能。主要應(yīng)用在廣告、推薦系統(tǒng)等業(yè)務(wù)中???/p>

廣告業(yè)務(wù)需要利用大數(shù)據(jù)進(jìn)行應(yīng)用分析、效果分析、定向優(yōu)化等;口

推薦系統(tǒng)則需要利用大數(shù)據(jù)優(yōu)化相關(guān)排名,進(jìn)行個(gè)性化推薦及熱點(diǎn)點(diǎn)擊分析等。典型的企業(yè)應(yīng)用有淘寶、騰訊、優(yōu)酷土豆等。第24頁(yè)三

、Sp

a

r

k的應(yīng)用場(chǎng)景搭建Spa

r

k單機(jī)環(huán)境數(shù)據(jù)處理應(yīng)用騰訊

騰訊大數(shù)據(jù)使用Spark平臺(tái)來(lái)支持挖掘分析類(lèi)計(jì)算、交互式查詢(xún)計(jì)算,以及允許誤差范圍的快速計(jì)算。

SQL查詢(xún)性能普遍比MapReduce高

兩倍以上,利用內(nèi)存計(jì)算和內(nèi)存表的特性,至少在10倍以上???/p>

迭代計(jì)算與挖掘分析方面,精準(zhǔn)推薦將小時(shí)和天級(jí)別的模型訓(xùn)練轉(zhuǎn)變?yōu)镾park的分鐘級(jí)別的訓(xùn)練???/p>

圍繞“數(shù)據(jù)+算法+系統(tǒng)”的技術(shù)方案,實(shí)現(xiàn)了數(shù)據(jù)實(shí)時(shí)采集、算法實(shí)時(shí)訓(xùn)練、系統(tǒng)實(shí)時(shí)預(yù)測(cè)的

全流程實(shí)時(shí)并行高維算法。第25頁(yè)三、Sp

a

r

k的應(yīng)用場(chǎng)景搭建Spa

r

k單機(jī)環(huán)境口將Spark應(yīng)用于多次迭代的機(jī)器學(xué)習(xí)算法、高計(jì)算復(fù)雜度的算法等,從而解決以往系統(tǒng)存在的效率低、代碼維護(hù)不易等問(wèn)題。口將圖處理庫(kù)應(yīng)用于多種計(jì)算場(chǎng)景,包括基于度分布的中樞節(jié)點(diǎn)發(fā)現(xiàn)、基

于最大連通圖的社區(qū)發(fā)現(xiàn)、基于三角形計(jì)算的關(guān)系衡量、基于隨機(jī)游走

的用戶(hù)屬性傳播等。第26頁(yè)三、Sp

a

r

k的應(yīng)用場(chǎng)景搭建Spa

r

k單機(jī)環(huán)境淘寶□Spark交互響應(yīng)快,模擬廣告投放計(jì)算效率高、延遲小,機(jī)器學(xué)習(xí)和圖計(jì)算等迭代計(jì)算的性能好。優(yōu)酷土豆使用Spark替換了以往使用的Hadoop集群?!鮏park已經(jīng)廣泛應(yīng)用于優(yōu)酷土豆的視頻推薦、廣告業(yè)務(wù)等場(chǎng)景。第27頁(yè)三、Sp

a

r

k的應(yīng)用場(chǎng)景搭建Spa

r

k單機(jī)環(huán)境優(yōu)酷土豆Spark單機(jī)環(huán)境對(duì)計(jì)算機(jī)硬件要求較低,搭建方法比較簡(jiǎn)單,適合初學(xué)者入門(mén)使用。由于Spark沒(méi)有提供文件存儲(chǔ)系統(tǒng),因此一般將Spark和Hadoop部署在一起,由Hadoop的HDFS、HBase等組件負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和管理。任

務(wù)

實(shí)

任務(wù)分析第28頁(yè)步驟1參考本書(shū)配套素材“

項(xiàng)目一”/“安裝與配置前置環(huán)境”文檔,安裝和配置以下前置環(huán)境。>

VMware虛擬機(jī):VMwareWorkstationPro

17.0.0。Linux操作系統(tǒng):RedHatEnterpriseLinux

8.7.064位。JDK:JDK

11。Hadoop:Hadoop

3.3.4。Python:Python

3.9.11。任

務(wù)

實(shí)

第29頁(yè)1

.下載并安裝Sp

a

r

k搭建Spark單機(jī)環(huán)境時(shí),首先需要下載并安裝Spark,其安裝路徑為“/usr/local/spark”,具體操作如下。步驟2在Linux操作系統(tǒng)中打開(kāi)瀏覽器,訪問(wèn)“/dist/spark/”,在打開(kāi)的頁(yè)面中單擊“spark-3.2.3/”鏈接文字,跳轉(zhuǎn)至下載界面,單擊“spark-3.2.3-bin-without-hadoop.tgz”鏈接文字,下載Spark安裝包,如圖所示。在Linux中,瀏覽器下載的內(nèi)容默認(rèn)存放在“home/hadoop下載”目錄下。其中,“hadoop”為L(zhǎng)inux的用戶(hù)名。任

務(wù)

實(shí)

第30頁(yè)1

.下載并安裝SparkC

0

8

https://archive

apache.org/dist/spark/

三Customer

Portal

Red

Hat

Red

Hat

Products

Docu..

Red

Hat

Enterprise

Linu...》Index

of/dist/spark/spark-3.2.3Name

Last

modified

Size

Descriptionspark-2.4.6/spark-2.4.7/spark-2.4.8/spark-3.0.0-preview/spark-3.0.0-preview2/□

spark-3.0.0/spark-3.0.1/spark-3.0.2/spark-3.0.3/spark-3.1.1/spark-3.1.2/□

spark-3.1.3/spark-3.2.0/spark-3.2.1/spark-3.2.2/spark-3.2.3/ spark-3.2.4/spark-3.3.0/spark-3.3.1/spark-3.3.2/spark-3.4.0/?]KEYS2020-06-0518:022020-11-0518:452022-06-1711:132019-11-0623:152019-12-2218:532020-06-1609:192020-11-0518:462021-02-1917:242022-06-1711:122021-03-0211:012022-06-1711:122022-06-1711:122021-10-1309:092022-06-1711:122022-07-1514:432022-11-2818:042023-04-1313:462022-06-1711:112022-10-2507:332023-02-1521:152023-04-1317:542023-04-1317:55109KParentDirectorySparkR_3.2.3.tar.gzSparkR_3.2.3.tar.gz.ascSparkR_3.2.3.tar.gz.sha512pyspark-3.2.3.tar.gz

268Mpyspark-3.2.3.tar.gz.asc

862pyspark-3.2.3.tar.gz.sha512

151spark-3.2.3-bin-hadoop2.7.tgz

260Mspark-3.2.3-bin-hadoop2.7.tgz.asc862spark-3.2.3-bin-hadoop2.7.tgz.sha512

160spark-3.2.3-bin-hadoop3.2-scala2.13.2

2

11-1418:47

293Mspark-3.2.3-bin-hadoop3.2-scala2.13.tgz.asc

2022-11-1418:47862spark-3.2.3-bin-hadoop3.2-scala2.13.tgz.sha5122022-11-1418:47170spark-3.2.3-bin-hadoop3.2.tgzspark-3.2.3-bin-hadoop3.2.tgz.ascspark-3.2.3-bin-hadoop3.2.tgz.sha512spark-3.2.3-bin-without-hadoop.tgzspark-3.2.3-bin-without-hadoop.tgz.ascspark-3.2.3-bin-without-hadoop.tgz.sha521022-11-1418:47165spark-3.2.3.tgz

2022-11-1418:4727M當(dāng)

spark-3.2.3.tgz.ascspark-3.2.3.tgz.sha5122022-11-1418:478622022-11-1418:47146任

務(wù)

實(shí)

第31頁(yè)1

.下載并安裝Sp

ar

kD

U2022-11-1418:47287M2022-11-1418:478622022-11-1418:471602022-11-1418:47200M2022-11-1418:47342K2022-11-1418:47862

2022-11-1418:47150言自心

言小

言小

言心

自心

言心2022-11-1418:47862步驟3執(zhí)行以下命令,將“spark-3.2.3-bin-without-hadoop.tgz”文件解壓到“/usr/local/”目錄下。#解壓文件到“/usr/local/”目錄下[hadoop@bogon~]$sudotar-zxf~/下載/spark-3.2.3-bin-without-hadoop.tgz-C/usr/local/任

務(wù)

實(shí)

第32頁(yè)1

.下載并安裝Sp

ar

k步驟4執(zhí)行以下命令,將“spark-3.2.3-bin-without-hadoop

”目錄重命名為“spark

”,Spark的安裝路徑即可設(shè)置為“/usr/local/spark”。[hadoop@bogon~]$cd#將“spark-3.2.3-bin[hadoop@bogonlocal]/usr/localwithout-hadoop”目錄重命名為“spark”$sudomv./spark-3.2.3-bin-without-hadoop

./spark任

務(wù)

實(shí)

第33頁(yè)1

.下載并安裝Spark步驟5執(zhí)行以下命令,將“spark”子目錄的所有權(quán)限賦予hadoop用戶(hù)。[hadoop@bogon

local]$sudochown-R

hadoop:hadoop

./spark任

務(wù)

實(shí)

第34頁(yè)1

.下載并安裝Spark步

驟1執(zhí)行以下命令,復(fù)制Spark安裝文件中自帶的配置文件,并重命名為“spark-env.sh”。[hadoop@bogon

local]$cd

spark[hadoop@bogon

spark]$sudocp

./conf/spark-env.sh.template

./conf/spark-env.sh任

務(wù)

實(shí)

2

.

添加配置信息

第35頁(yè)安裝完Spark后,需要在其配置文件中添加配置信息,配置不同的環(huán)境變量。具體操作如下。步驟2執(zhí)行以下命令,使用Vim編輯器打開(kāi)“spark-env.sh”配置文件。p@bogon

s

p

ar

k]$su

do

vim

./c

o

nf/s

p

ar

k-e

nv.s

h任

務(wù)

實(shí)

第36頁(yè)2

.添加配置信息[h

a

d

o步驟3按“I”鍵進(jìn)入編輯模式,使用鍵盤(pán)的“個(gè)”鍵調(diào)整光標(biāo)位置,在配置文件的首信息,終端顯示如圖所示。行添加以下配置口

hadoop@bogon:/usr/local/spark

X文件(F)編輯(E)查看(V)搜索(S)終端(T)幫助(H)exportSPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop

classpath)export

JAVA_HOME=/usr/lib/jvm/jdk-11exportHAD00P_HOME=/usr/local/hadoopexport

HAD00P_CONF_DIR=/usr/local/hadoop/etc/hadoop#!/usr/bin/envbash-

-

-

-

1,1頂端任

務(wù)

實(shí)

第37頁(yè)2

.添加配置信息#配置信息用于實(shí)現(xiàn)Spark與Hadoop之間的交互exportSPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoopclasspath)#配置JDK的安裝路徑exportJAVA_HOME=/usr/lib/jvm/jdk-11#配置Hadoop的安裝路徑exportHADOOP_HOME=/usr/local/hadoop#Hadoop配置文件的路徑exportHADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop任

務(wù)

實(shí)

2

.

第38頁(yè)步驟4配置完信息后,按“esc”鍵退出編輯模式,然后輸入“:wq”,最后按“Enter

”鍵保存并關(guān)閉配置文件。任

務(wù)

實(shí)

2

.

添加配置信息

第39頁(yè)任

務(wù)

實(shí)

2

.

息步驟5使用同樣方法,打開(kāi)“.bashrc

”配置文件,添加配置信息。[hadoop@bogonspark]$vim~1.bashrc#配置信息exportJAVA_HOME=/usr/lib/jvm/jdk-11exportJRE_HOME=${JAVA_HOME}/jreexportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexportPATH=${JAVA_HOME}/bin:$PATHexportPATH=$PATH:${JAVA_HOME}/bin:/usr/local/hbase/bin第40頁(yè)使用同樣方法,打開(kāi)“.bashrc”配置文件,添加配置信息。exportHADOOP_HOME=/usr/local/hadoopexportSPARK_HOME=/usr/local/sparkexportPYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j--

src.zip:$PYTHONPATHexportPYSPARK_PYTHON=python3exportPATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATH第41頁(yè)2

.

息步驟5任

務(wù)

實(shí)

施步

6執(zhí)行以下命令,使環(huán)境變量生效。[ha

doo

p@bo

g

on

s

p

ark]$s

o

urc

e

~1.b

a

s

h

r

c任

務(wù)

實(shí)

第42頁(yè)2

.添加配置信息添加好配置信息后就可以直接使用Spark了,不需要像Hadoop那樣運(yùn)行啟動(dòng)命令。因此,通過(guò)運(yùn)行

Spark自帶的示例可以驗(yàn)證Spark單機(jī)環(huán)境是否搭建成功。執(zhí)行以下命令,運(yùn)行Spark自帶的示例SparkPi,若能輸出Pi的值即可驗(yàn)證Spark單機(jī)環(huán)境搭建成功。[hadoop@bogonspark]$./bin/run-example

SparkPi任

務(wù)

實(shí)

第43頁(yè)3

.驗(yàn)證Sp

a

r

k單機(jī)環(huán)境是否搭建成功為了能從大量的輸出信息中快速找到我們想要的執(zhí)行結(jié)果,可以使用“grep”命令進(jìn)行過(guò)濾。執(zhí)

行以下命令輸出Pi的值,如圖所示。hadoop@bogon:/usr/local/spark

X文件(F)編輯(E)查看(V)搜索(S)終端(T)幫助(H)spark]$./bin/run-exampleSparkPi

2>&1

|grep"Pi

is"3.1417357086785436[hadoop@bogon

spark]$./bin/run-example

SparkPi2>&1|grep

"Pi

is"任

務(wù)

實(shí)

第44頁(yè)3

.驗(yàn)證Sp

a

r

k單機(jī)環(huán)境是否搭建成功[hadoop@bogon

Pi

isroughlySpark

的發(fā)展歷程Spark的特點(diǎn)Sp

ark的應(yīng)用場(chǎng)景課

結(jié)第45頁(yè)任務(wù)二搭

Sp

a

r

k

集群環(huán)境

USpark集群環(huán)境是由一臺(tái)或多臺(tái)計(jì)算機(jī)組成的分布式計(jì)算環(huán)境,這些計(jì)算機(jī)通

過(guò)網(wǎng)絡(luò)連接在一起,用于并行處理大規(guī)模數(shù)據(jù)。Spark集群通常由一個(gè)Master節(jié)

點(diǎn)和多個(gè)Worker節(jié)點(diǎn)組成。其中,Master節(jié)點(diǎn)負(fù)責(zé)調(diào)度工作并分配任務(wù)給Worker

節(jié)點(diǎn)執(zhí)行;Worker節(jié)點(diǎn)負(fù)責(zé)執(zhí)行不同的任務(wù),并將執(zhí)行結(jié)果返回給Master節(jié)點(diǎn)。

Worker節(jié)點(diǎn)的數(shù)量可以根據(jù)需求進(jìn)行動(dòng)態(tài)調(diào)整,以適應(yīng)大規(guī)模數(shù)據(jù)處理應(yīng)用程序的需求。搭建Spark集群環(huán)境之前,我們先來(lái)學(xué)習(xí)一下Spark的生態(tài)系統(tǒng)、運(yùn)

行架構(gòu)、運(yùn)行基本流程和部署模式。任

務(wù)

第47頁(yè)Spark的設(shè)計(jì)遵循“一個(gè)軟件棧滿(mǎn)足不同應(yīng)用場(chǎng)景”的理念,因此逐漸形成了一套成熟的生態(tài)系統(tǒng)。Spark的生態(tài)系統(tǒng)又稱(chēng)為伯努利數(shù)據(jù)分析棧(Berkerleydataanalyticsstack,BDAS),它

是基于內(nèi)存計(jì)算的大數(shù)據(jù)并行計(jì)算框架,適用于各種各樣分布式平臺(tái)系統(tǒng)。一、Sp

ark的生態(tài)系統(tǒng)搭建S

park集群環(huán)境第48頁(yè)□Spark生態(tài)系統(tǒng)以SparkCore為核心,專(zhuān)注于數(shù)據(jù)的處理分析;口

持Local

、Standalone

、YARN和Kubernetes等多種部署模式,可

以借助HDFS

、MySQL

、HBase和Amazon

S3等實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ);口提供了Spark

SQL

、Spark

Streaming

、SparkMLlib和Spark

GraphX等多種組件。搭建Spark集群環(huán)境一

、Spa

r

k的生態(tài)系統(tǒng)第49頁(yè)第50頁(yè)SparkGraphXRDDKubernetesAmazonS3SparkStreaming內(nèi)存管理StandaloneMySQLSpark

SQL任務(wù)調(diào)度LocalHDFS組件SparkCore部署模式數(shù)據(jù)存儲(chǔ)SparkMLlib存儲(chǔ)管理YARNHBaseSpark

Core和Spark組件的詳細(xì)介紹一

、Spa

r

k的生態(tài)系統(tǒng)搭建Spa

rk集群環(huán)境U口可以實(shí)現(xiàn)Spark的基本功能,包括任務(wù)調(diào)度、內(nèi)存管理、存儲(chǔ)管理和故障恢復(fù)等。口建立在統(tǒng)一的抽象數(shù)據(jù)集(RDD)之上,提供用于創(chuàng)建分布式數(shù)據(jù)處理應(yīng)用程序的API??谥荚谔岣邤?shù)據(jù)處理應(yīng)用程序的執(zhí)行效率,并允許在更廣泛的問(wèn)題域中執(zhí)行交互式查詢(xún)和分析。第51頁(yè)一、S

p

ar

k的生態(tài)系統(tǒng)(1)Spark

Core搭建Spa

rk集群環(huán)境口

SparkSQL是用于操作結(jié)構(gòu)化數(shù)據(jù)的組件,將SQL

與Spark應(yīng)用程序無(wú)縫銜接??诳梢允褂肞ython

、Scala

、Java或R語(yǔ)言的API實(shí)現(xiàn),具有易整合的特點(diǎn)。口提供訪問(wèn)各種數(shù)據(jù)源的通用方法,以相同的方式連接到MySQL、Hive、HBase

等多種數(shù)據(jù)源。第52頁(yè)一、S

p

ar

k的生態(tài)系統(tǒng)(2)Spark

SQL搭建Spa

rk集群環(huán)境口

于實(shí)時(shí)流處理的組件,它能夠?qū)?shí)時(shí)數(shù)據(jù)流進(jìn)行流式處理???/p>

具有很好的可擴(kuò)展性、高吞吐量和容錯(cuò)性??谥С謴腒afka

、Flume

、Twitter

和TCP套接字等多種數(shù)據(jù)源中提取數(shù)據(jù)。

口提供多種API來(lái)表達(dá)復(fù)雜的處理算法。第53頁(yè)一、S

p

ar

k的生態(tài)系統(tǒng)搭建Spa

rk集群環(huán)境(3)Spark

Streaming(4)SparkMLlib

用于在分布式計(jì)算環(huán)境中進(jìn)行機(jī)器學(xué)習(xí)任務(wù)的組件口提供了常用的機(jī)器學(xué)習(xí)算法,旨在簡(jiǎn)化機(jī)器學(xué)習(xí)的工程實(shí)踐工作???/p>

由多種工具組成,包括分類(lèi)、回歸、聚類(lèi)、協(xié)同過(guò)濾等算法工具,特征提取、轉(zhuǎn)化、降維、選擇等特征化工具,線(xiàn)性代數(shù)、統(tǒng)計(jì)、數(shù)據(jù)處理等實(shí)用工具、底層的優(yōu)化原語(yǔ)和高層的管道API。第54頁(yè)一、S

p

ar

k的生態(tài)系統(tǒng)搭建Spa

rk集群環(huán)境口

SparkGraphX是用于處理和分析大規(guī)模圖數(shù)據(jù)的組件??谀軌蛲ㄟ^(guò)Spark的分布式計(jì)算能力有效解決傳統(tǒng)單機(jī)處理大規(guī)模圖數(shù)據(jù)的效率問(wèn)題??谶€提供了一系列高級(jí)的圖形算法,幫助用戶(hù)分析和挖掘圖數(shù)據(jù)中有價(jià)值的信息。第55頁(yè)一、S

p

ar

k的生態(tài)系統(tǒng)搭建Sp

ark集群環(huán)境(5)Spark

GraphX和每個(gè)工作節(jié)點(diǎn)上負(fù)責(zé)具體任務(wù)的執(zhí)行器,如圖所示。DriverSparkContext

ClusterManager搭建Spa

rk集群環(huán)境

第56頁(yè)一般情況下,Spark的運(yùn)行架構(gòu)包括每個(gè)應(yīng)用的驅(qū)動(dòng)器、集群資源管理器、運(yùn)行作業(yè)任務(wù)的工作節(jié)點(diǎn)二

、Sp

a

r

k的運(yùn)行架構(gòu)ExecutorTaskExecutorTaskCacheTaskCacheTaskHDFS、HBaseWorkerNodeWorkerNodeSpark運(yùn)行架構(gòu)中涉及的概念及其解釋如下:口

應(yīng)用(Application):用戶(hù)編寫(xiě)的Spark應(yīng)用程序,包括實(shí)現(xiàn)Driver功能的代碼和在集群多個(gè)節(jié)點(diǎn)上運(yùn)行的程序代碼???/p>

驅(qū)動(dòng)器(Driver):運(yùn)行應(yīng)用程序的main函數(shù),創(chuàng)建SparkContext對(duì)象,其目的是為Spark應(yīng)用程序準(zhǔn)備運(yùn)行環(huán)境。在Spark中,由SparkContext負(fù)責(zé)與ClusterManager通信,進(jìn)行資源申請(qǐng)、

任務(wù)的分配和監(jiān)控等。當(dāng)Executor部分運(yùn)行完畢后,Driver同時(shí)負(fù)責(zé)將SparkContext關(guān)閉。二

、Spar

k的運(yùn)行架構(gòu)搭建S

p

ark集群環(huán)境第57頁(yè)口集群資源管理器(ClusterManager):負(fù)責(zé)資源管理和調(diào)度,根據(jù)應(yīng)用程序的需求來(lái)分配集群中的計(jì)算節(jié)點(diǎn)和內(nèi)存資源。常見(jiàn)的集群資源管理器類(lèi)型有Standalone、YARN等

???/p>

工作節(jié)點(diǎn)(Worker):集群中運(yùn)行Spark應(yīng)用程序的節(jié)點(diǎn)。Worker就是物理節(jié)點(diǎn),可以在上面

啟動(dòng)Executor進(jìn)程???/p>

執(zhí)行器(Executor):在每個(gè)Worker上為某應(yīng)用程序啟動(dòng)的一個(gè)進(jìn)程,該進(jìn)程負(fù)責(zé)運(yùn)行Task,并且負(fù)責(zé)將數(shù)據(jù)保存在內(nèi)存或者磁盤(pán)上,每個(gè)任務(wù)都有各自獨(dú)立的Executor。Executor是一個(gè)執(zhí)

行Task的容器。二

、Spar

k的運(yùn)行架構(gòu)搭建S

park集群環(huán)境第58頁(yè)口彈性分布式數(shù)據(jù)集(resilientdistributeddatasets,RDD):Spark中的基本數(shù)據(jù)結(jié)構(gòu),是一組不可變的分布式對(duì)象集合???/p>

有向無(wú)環(huán)圖(directedacyclicgraph,DAG):當(dāng)用戶(hù)提交一個(gè)作業(yè)時(shí),Spark會(huì)將其轉(zhuǎn)化為一組有向無(wú)環(huán)圖的形式,反映RDD之間的依賴(lài)關(guān)系??谌蝿?wù)(Task):被送到某個(gè)Executor上的工作單元,是運(yùn)行應(yīng)用的基本單位。二

、S

p

a

r

k的運(yùn)行架構(gòu)搭建S

park集群環(huán)境第59頁(yè)口

作業(yè)(Job):一個(gè)作業(yè)包含多個(gè)RDD及作用于相應(yīng)RDD上的各種操作,支持多個(gè)任務(wù)的并行計(jì)算。一個(gè)應(yīng)用中往往會(huì)產(chǎn)生多個(gè)作業(yè)??陔A段(Stage):作業(yè)調(diào)度的基本單位,每個(gè)階段可分為多個(gè)任務(wù),這些任務(wù)相互依賴(lài)。二

、Spar

k的運(yùn)行架構(gòu)搭建S

park集群環(huán)境第60頁(yè)搭建Spa

rk集群環(huán)境總而言之,在Spark中

一個(gè)應(yīng)用由一個(gè)驅(qū)動(dòng)器和若干個(gè)作業(yè)組成,一個(gè)作

業(yè)可以劃分為多個(gè)階段,每個(gè)階段可以由多個(gè)任務(wù)

組成,如圖所示。第61頁(yè)任務(wù)n任務(wù)n任務(wù)1階段1作業(yè)1驅(qū)動(dòng)器任務(wù)1階段1作業(yè)p應(yīng)用任務(wù)1階段m任務(wù)1階段m任務(wù)2任務(wù)2任務(wù)n任務(wù)n任務(wù)2任務(wù)2二

、Sp

a

r

k的運(yùn)行架構(gòu)USpark運(yùn)行的基本流程如圖所示。

下面對(duì)Spark運(yùn)行的原理進(jìn)行詳細(xì)介紹DriverSparkContextRDD對(duì)象構(gòu)建DAG1.注冊(cè)并申請(qǐng)資源Cluster

Manager分配并監(jiān)控資源使用情況6.注銷(xiāo)并釋放資源3.資源反饋

2.分配資源4.注冊(cè)并申請(qǐng)任務(wù)。DAGDAG調(diào)度器將DAG分解為階段任務(wù)集任務(wù)調(diào)度器提交和監(jiān)控任務(wù)5.發(fā)送任務(wù)WorkerNodeExecutor進(jìn)程匯報(bào)資源使用情況三

、S

p

a

r

k運(yùn)行的基本流程搭建S

park集群環(huán)境第62頁(yè)啟動(dòng)Spark應(yīng)用程序,為這個(gè)應(yīng)用程序構(gòu)建基本的運(yùn)行環(huán)境,即根據(jù)Spark應(yīng)用程序提交的參數(shù)在相應(yīng)位置創(chuàng)建Driver進(jìn)程,由Driver進(jìn)程根據(jù)參數(shù)信息初始化

SparkContext對(duì)象。SparkContext對(duì)象根據(jù)參數(shù)向ClusterManager注冊(cè)并申請(qǐng)資源。(1)

冊(cè)

請(qǐng)

資源三

、S

p

a

r

k運(yùn)行的基本流程搭

建Spark集群環(huán)境第63頁(yè)ClusterManager接收到應(yīng)用的注冊(cè)請(qǐng)求后,使用自己的資源調(diào)度算法,為應(yīng)用程序啟動(dòng)Spark集群中Worker節(jié)點(diǎn)上的多個(gè)Executor進(jìn)程。三

、S

p

a

r

k運(yùn)行的基本流程搭建S

park集群環(huán)境配

源(2)分第64頁(yè)Executor進(jìn)程啟動(dòng)后,會(huì)向ClusterManager反饋資源使用情況,便于ClusterManager對(duì)Executor進(jìn)行狀態(tài)監(jiān)控。若監(jiān)控到Executor進(jìn)程啟動(dòng)失敗,則會(huì)立刻重新啟動(dòng)。三

、S

p

a

r

k運(yùn)行的基本流程搭建S

park集群環(huán)境資

饋(3)第65頁(yè)搭建Spa

rk集群環(huán)境(4)注冊(cè)并

申請(qǐng)

任務(wù)Executor進(jìn)程向SparkContext注冊(cè)并申請(qǐng)任務(wù)(Task)。三

、S

p

a

r

k運(yùn)行的基本流程第66頁(yè)□

SparkContext根據(jù)RDD之間的依賴(lài)關(guān)系構(gòu)建DAG

;口

將DAG

提交給DAG調(diào)度器進(jìn)行解析,分解成階

段(Stage),

形成任務(wù)集(TaskSet);口

將任務(wù)集提交給任務(wù)調(diào)度器(TaskScheduler),并分配給不同的Executor進(jìn)程執(zhí)行。(5)發(fā)送任務(wù)三、S

p

a

r

k運(yùn)行的基本流程搭建S

park集群環(huán)境第67頁(yè)當(dāng)程序執(zhí)行完畢后,SparkContext向ClusterManager申請(qǐng)注銷(xiāo)并釋放申請(qǐng)的資源。第68頁(yè)三

、S

p

a

r

k運(yùn)行的基本流程搭建Spa

rk集群環(huán)境(6)注銷(xiāo)并釋放資源使用Spark進(jìn)行大規(guī)模數(shù)據(jù)計(jì)算與分析時(shí),需要將開(kāi)發(fā)好的應(yīng)用程序部署到Spark上運(yùn)行。Spark的部署模式可以分為兩種類(lèi)型,一種是本地部署模式,另一種是集群部署模式。第69頁(yè)四

、S

p

a

r

k的部署模式搭建Spa

rk集群環(huán)境本地部署模式即Local部署模式,它是指將Spark應(yīng)用程序部署在單個(gè)計(jì)算機(jī)上,所有的Spark組件都在同一個(gè)JVM進(jìn)程中。在Local部署模式

,Spark應(yīng)用程序可以利用單臺(tái)計(jì)算機(jī)上的所有資源并行處理數(shù)據(jù)。第70頁(yè)四

、Spark的部署模式搭建Spa

rk集群環(huán)境1

.本地部署模式1

.本地部署模式通常情況下,Local部署模式適用于開(kāi)發(fā)、測(cè)試和調(diào)試Spark應(yīng)用程序時(shí)的本地開(kāi)發(fā)環(huán)境,并不適合部署到生產(chǎn)環(huán)境中使用。第71頁(yè)四

、Spark的部署模式搭建Spa

rk集群環(huán)境集群部署模式是指在一個(gè)由多臺(tái)計(jì)算機(jī)組成的集群中運(yùn)行Spark應(yīng)用程序的模式。在集群部署模式下,Spark的各個(gè)組件分布式地運(yùn)行在多臺(tái)計(jì)算機(jī)上,使Spark可以在多個(gè)節(jié)點(diǎn)上并行處理大規(guī)模數(shù)據(jù)。搭建Spa

rk集群環(huán)境2

.集群部署模式四

、Spark的部署模式第72頁(yè)集群部署模式適用于企業(yè)的實(shí)際生產(chǎn)環(huán)境。Spark集群部署模式包括Standalone部署模式、YARN部署模式和Kubernetes部署模式,它們的詳細(xì)介紹如下:搭建Spa

rk集群環(huán)境2

.集群部署模式四

、Spark的部署模式第73頁(yè)

St

a

n

d

a

lo

n

e部署模式Standalone部署模式是指在Spark集群中沒(méi)有使用資源管理框架(如YARN)的部署模式。在這種部署模式下,由Spark的Master節(jié)點(diǎn)管理整個(gè)集群的計(jì)算資源,并將任務(wù)分發(fā)給Worker節(jié)點(diǎn)進(jìn)行執(zhí)行。第74頁(yè)搭

建Spa

rk集群環(huán)境四

、S

p

a

r

k的部署模式2

.集群部署模式

Stan

d

a

lo

n

e部署模式Spark應(yīng)用程序通過(guò)與Master節(jié)點(diǎn)通信來(lái)請(qǐng)求資源,然后Master節(jié)點(diǎn)根據(jù)Worker節(jié)點(diǎn)的負(fù)載和可用性將任務(wù)分配給它們。Standalone部署模式的構(gòu)建過(guò)程非常簡(jiǎn)單,并且比其他部署模式更容易維護(hù)。搭建Spa

rk集群環(huán)境2

.集群部署模式四

、Spark的部署模式第75頁(yè)

Stan

d

a

lo

n

e部署模式由于它缺乏資源管理框架所提供的一些高級(jí)特性,導(dǎo)致它在大規(guī)模集群的管理、資源調(diào)度等方面可能會(huì)有一些局限性。搭建Spa

rk集群環(huán)境2

.集群部署模式四

、Spark的部署模式第76頁(yè)

YA

RN部署模式Y(jié)ARN部署模式是指將Spark應(yīng)用程序部署到運(yùn)行著YARN的集群中。在這種部署模式下,由YARN

管理集群上的所有資源,并允許Spark應(yīng)用程序向YARN

請(qǐng)求資源以完成任務(wù)。搭建Spa

rk集群環(huán)境2

.集群部署模式四

、Spark的部署模式第77頁(yè)

YA

RN部署模式Spark應(yīng)用程序提交到Y(jié)ARN上

,YARN會(huì)根據(jù)應(yīng)用程序的需求自動(dòng)調(diào)度、分配和管理集群資源,使Spark應(yīng)用程序可以高效率地運(yùn)行在大規(guī)模計(jì)算集群上。搭建Spa

rk集群環(huán)境2

.集群部署模式四

、Spark的部署模式第78頁(yè)

YA

RN部署模式Y(jié)ARN

已經(jīng)廣泛應(yīng)用于大數(shù)據(jù)處理領(lǐng)域,所以YARN

部署模式對(duì)于需要進(jìn)行大規(guī)模數(shù)據(jù)處理的場(chǎng)景非常適用。搭建Spa

rk集群環(huán)境2

.集群部署模式四

、Spark的部署模式第79頁(yè)

Ku

ber

n

e

te

s部署模式Kubernetes部署模式是將Spark應(yīng)用程序部署到運(yùn)行著Kubernetes的集群中。Kubernetes是一種開(kāi)源容器編排系統(tǒng),它可以管理分布式應(yīng)用程序在容器化環(huán)境中的部署、擴(kuò)展和維護(hù)。搭建Spa

rk集群環(huán)境2

.集群部署模式四

、Spark的部署模式第80頁(yè)

Ku

ber

n

e

te

s部署模式在Kubernetes中,Spark應(yīng)用程序可以通過(guò)使用操作性資源規(guī)范定義所需的計(jì)算和存儲(chǔ)資源,以及工作負(fù)載的調(diào)度和啟動(dòng)策略。具有高可用性、自動(dòng)擴(kuò)展、故障恢復(fù)等強(qiáng)大的特性。搭建Spa

rk集群環(huán)境2

.集群部署模式四

、Spark的部署模式第81頁(yè)

Ku

be

r

n

ete

s部署模式Kubernetes的出現(xiàn)極大地簡(jiǎn)化了大數(shù)據(jù)處理和人工智能等領(lǐng)域的應(yīng)用程序的部署和管理,并逐漸成為云原生技術(shù)棧的標(biāo)配。搭建Spa

rk集群環(huán)境2

.集群部署模式四

、Spark的部署模式第82頁(yè)

任務(wù)分析Spark集群環(huán)境可以分為Spark偽分布式集群環(huán)境和Spark完全分布式集群環(huán)境。Spark偽分布式集群環(huán)境是指在一臺(tái)計(jì)算機(jī)上模擬分布式計(jì)算的環(huán)境,其原理是通過(guò)在一臺(tái)計(jì)算機(jī)上運(yùn)行多個(gè)進(jìn)程來(lái)模擬集群中的各個(gè)節(jié)點(diǎn),從而并行處理數(shù)據(jù),常用于開(kāi)發(fā)、測(cè)試和調(diào)試應(yīng)用程序。任

務(wù)

實(shí)

施第83頁(yè)

任務(wù)分析Spark完全分布式集群環(huán)境則是指由多臺(tái)計(jì)算機(jī)組成的分布式計(jì)算環(huán)境,每個(gè)

節(jié)點(diǎn)都有自己的CPU、內(nèi)存和磁盤(pán)資源,并且Spark應(yīng)用程序可以跨多個(gè)節(jié)點(diǎn)進(jìn)行并行計(jì)算,常用于處理企業(yè)實(shí)際生產(chǎn)環(huán)境中的業(yè)務(wù)。任

務(wù)

實(shí)

施第84頁(yè)步驟1搭建Spark偽分布式集群環(huán)境參考任務(wù)一中的任務(wù)實(shí)施,搭建Spark單機(jī)環(huán)境。參考本書(shū)配套素材“項(xiàng)目一”/“搭建Hadoop偽分布式集群”文檔,搭建Hadoop偽分布式集群。Spark偽分布式集群環(huán)境一般與Hadoop偽分布式集群部署在一起,具體的操作方法如下:1

.搭建Sp

a

r

k偽分布式集群環(huán)境任

務(wù)

實(shí)

施第85頁(yè)步驟2執(zhí)行以下命令,查詢(xún)自己計(jì)算機(jī)的IP地址,用于設(shè)置配置信息。IP地址的查詢(xún)結(jié)果,如圖所示。[h

a

d

o

o

p

@bo

g

o

n

~]$ifc

onfigens160:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu

1500inet[192.168.22.134]netmask

broadcast

55inet6fe80::250:56ff:fe31:cla8prefixlen64

scopeid

0x20<link>ether

00:50:56:31:cl:a8

txqueuelen

1000(Ethernet)RX

packets

1430

bytes

1767172(1.6

MiB)RX

errors

0

dropped

0

overruns

0

frame

0TX

packets

777

bytes

54310(53.0

KiB)TX

errors0dropped

0

overruns

0

carrier0

collisions

0任

務(wù)

實(shí)

1

.搭建Sp

a

r

k偽分布式集群環(huán)境

第86頁(yè)[hadoop@bogon~]$cd/usr/local/spark/conf#打開(kāi)“spark-env.sh”

配置文件[hadoop@bogon

conf]$vim

spark-env.sh#配置信息,將此處的IP地址修改為步驟2查詢(xún)到的IP

地址export

SPARK_MASTER_IP=

34export

SPARK_LOCAL_IP=

34SPARK_MASTER_PORT=7077任

務(wù)

實(shí)

1

.搭建Sp

a

r

k偽分布式集群環(huán)境

第87頁(yè)執(zhí)行以下命令,打開(kāi)“spark-env.sh”配置文件,添加以下配置信息。步驟3步驟4執(zhí)行以下命令,使環(huán)境變量生效。[hadoop@bogon

conf]$source

spark-en

v.sh步驟5

執(zhí)行以下命令,啟動(dòng)Master節(jié)點(diǎn)。[hadoop@bogon

conf]$cd

/usr/local/spark[hadoop@bogon

spark]$./sbin/start-m

aster.sh步驟6執(zhí)行以下命令,啟動(dòng)Worker節(jié)點(diǎn)。[hadoop@bogon

spark]$./sbin/start-worker.sh

spark://localhost:7077

務(wù)

實(shí)

1

.搭建Sp

a

r

k偽分布式集群環(huán)境

第88頁(yè)步驟7執(zhí)行以下命令,驗(yàn)證Spark單機(jī)偽分布式集群是否啟動(dòng)成功。若輸出結(jié)果中既出現(xiàn)Master節(jié)點(diǎn)[hadoop@bogonspark]$jps,又出現(xiàn)Worker節(jié)點(diǎn),則證明Spark偽分布式集群

3328

Master3414

Worker3483

Jps啟動(dòng)成功,如圖所示。任

務(wù)

實(shí)

1

.搭建Sp

a

r

k偽分布式集群環(huán)境

第89頁(yè)[hadoop@bogon

spark]$jps步

8執(zhí)行以下命令,驗(yàn)證Spark偽分布式集群是否可以正常使用,若能輸出Pi值,則證明Spark偽分布式集群可以正常使用,如圖所示。hadoopebogon

spark]$./bin/run-example

SparkPi2>&1|grep

"Pi

is"Pi

is

roughly

3.138275691378457[hadoop@bogon

spark]$./bin/run-exampleSparkPi2>&1|grep

"Pi

is"任

務(wù)

實(shí)

1

.搭建Sp

a

r

k偽分布式集群環(huán)境

第90頁(yè)步驟1搭建Spark完全分布式集群環(huán)境參考任務(wù)一中的任務(wù)實(shí)施,搭建Spark單機(jī)環(huán)境。參考“項(xiàng)目一”/“搭建Hadoop完全分布式集群”文檔,搭建Hadoop完全分布式集群。任

務(wù)

實(shí)

2

.搭建Sp

ar

k完全分布式集群環(huán)境

第91頁(yè)步驟2在Master節(jié)點(diǎn)上執(zhí)行以下命令,打開(kāi)“.bashrc”配置文件,添加以下配置信[hadoop@Master~]$vim~1.bashrc#配置信息export

SPARK_HOME=/usr/local/sparkexportPATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin任

務(wù)

實(shí)

施第92頁(yè)

2

.搭建Sp

ar

k完全分布式集群環(huán)境

步驟3執(zhí)行以下命令,使環(huán)境變量生效。[ha

do

o

p@M

a

s

t

er

~]$s

our

c

e

~/.b

a

s

hr

c任

務(wù)

實(shí)

2

.搭建Sp

ar

k完全分布式集群環(huán)境

第93頁(yè)步驟4在Master節(jié)點(diǎn)上執(zhí)行以下命令,復(fù)制“workers.template”配置文件,并命名為“workers”;打開(kāi)“workers”配置文件,將“l(fā)ocalhost”修改為以下配置信息。[hadoop@Master~]$cd

/usr/local/spark#復(fù)制

“workers.template”配置文件,并命名為

“workers”[hadoop@Master

spark]$sudo

cp./conf/workers.template

./conf/workers[hadoop@Master

spark]$sudo

vim

./conf/workers#配置信息Worker1Worker22

.搭建Sp

ar

k完全分布式集群環(huán)境任

務(wù)

實(shí)

施第94頁(yè)[hadoop@Master

spark]$sudo

cp

./conf/spark-env.sh.template

./conf/spark-env.sh[hadoop@Master

spark]$sudo

vim

./conf/spark-env.sh#配置信息exportSPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoopclasspath)export

JAVA_HOME=/usr/lib/jvm/jdk-11export

HADOOP_HOME=/usr/local/hadoopexport

HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoopexport

SPARK_MASTER_IP=

36export

SPARK_MASTER_PORT=7077export

SPARK_WORKER_MEMORY=512mexport

SPARK_WORKER_CORES=1export

SPARK_WORKER_INSTANCES=1export

SPARK_EXECUTOR_MEMORY=512mexport

SPARK_EXECUTOR_CORES=1在Master節(jié)點(diǎn)上執(zhí)行以下命令,

復(fù)

制“spark-env.sh.template”配置文件,并命名為“spark-

env.sh”;打開(kāi)“spark-env.sh”配

置文件,添加以下配置信息。2

.搭建Sp

ar

k完全分布式集群環(huán)境步驟5任

務(wù)

實(shí)

施第95頁(yè)步驟6在Master節(jié)點(diǎn)上執(zhí)行以下命令,壓縮“/usr/local/spark”目錄。#切換到“/usr/local”目錄[hadoop@Master

spark]$cd

/usr/local#壓縮“/usr/local/spark”目錄[hadoop@Master

local]$sudotar-zcf~/spark.master.tar.g

z

./spark第96頁(yè)任

務(wù)

實(shí)

2

.搭建Sp

ar

k完全分布式集群環(huán)境

步驟7在Master節(jié)點(diǎn)上執(zhí)行以下命令,將壓縮后的“~1.spark.master.tar.gz”復(fù)制到Worker1和Worker2#切換到根目錄[hadoop@Master

local]$cd~#將“~/.spark.master.tar.gz”復(fù)制到Worker1節(jié)點(diǎn)[hadoop@Master~]$sudo

scp./spark.master.tar.gz

Worker1:/home/hadoop#將“~/.spark.master.tar.gz”復(fù)制到Worker2節(jié)點(diǎn)[hadoop@Master~]$sudo

scp

./spark.master.tar.gz

Worker2:/home/hadoop節(jié)點(diǎn)

。

務(wù)

實(shí)

2

.搭建Sp

ar

k完全分布式集群環(huán)境

第97頁(yè)分別在Worker1和

Worker2節(jié)點(diǎn)上執(zhí)行以下命令,解

壓從Master節(jié)點(diǎn)上復(fù)制過(guò)來(lái)的“~1.spark.master.tar.gz”文件,并賦予權(quán)限給hadoop

用戶(hù)。#刪除已經(jīng)存在的“/usr/local/spark”[hadoop@Worker1

~]$sudo

rm

-rf/usr/local/spark#解壓“~1.spark.master.tar.gz”

文件[hadoop@Worker1~]$sudotar-zxf~/spark.master.tar.gz-C/usr/local#賦予權(quán)限給hadoop

用戶(hù)[hadoop@Worker1

~]$sudochown-Rhadoop

/usr/local/s

park2

.搭建Sp

ar

k完全分布式集群環(huán)境任

務(wù)

實(shí)

施步驟8第98頁(yè)步驟9在Master節(jié)點(diǎn)上執(zhí)行以下命令,啟動(dòng)Hadoop集群。[hadoop@Master

~]$cd

/usr/local/hadoop#啟動(dòng)dfs[hadoop@Master

hadoop]$./sbin/start-dfs.sh#啟動(dòng)y

arn[hadoop@Master

hadoop]$./sbin/start-y

arn.sh#啟動(dòng)historyser

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論