版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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入門項(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í)庫項(xiàng)目六
Gra
ph
Fr
a
mes——圖計(jì)算框架項(xiàng)目七
綜合案例——分析銀行個(gè)人信貸業(yè)務(wù)數(shù)據(jù)目
錄項(xiàng)目一S
編
PPT
入
門課件k輯r可a全套p任務(wù)一
搭建Sp
ar
k單機(jī)環(huán)境任
務(wù)
二
搭
建Sp
ar
k集群環(huán)境任務(wù)三開發(fā)并運(yùn)行應(yīng)用程序隨著互聯(lián)網(wǎng)和物聯(lián)網(wǎng)技術(shù)的發(fā)展,人們產(chǎn)生和創(chuàng)造的數(shù)據(jù)呈爆炸式增長。傳統(tǒng)的大數(shù)據(jù)處理框架HadoopMapReduce已無法滿足人們對(duì)大規(guī)模數(shù)據(jù)的處理需求,因此一個(gè)更加高效的、用于
處理大規(guī)模數(shù)據(jù)的、開源的分布式計(jì)算框架Spark誕生了。本項(xiàng)目將介紹Spark的相關(guān)知識(shí),搭建Spark單機(jī)環(huán)境和集群環(huán)境,開發(fā)
并運(yùn)行應(yīng)用程序。項(xiàng)
目
導(dǎo)
讀第6頁口了解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頁口了解Spark的發(fā)展歷程、特點(diǎn)與應(yīng)用場(chǎng)景。口熟悉Spark的生態(tài)系統(tǒng)、運(yùn)行架構(gòu)與運(yùn)行基本流程??谡莆誗park的部署模式、PySpark命令與運(yùn)行應(yīng)用程序的方法。技
能
目
標(biāo)第8頁口增強(qiáng)遵守規(guī)則的意識(shí),養(yǎng)成按規(guī)矩行事的習(xí)慣??诩訌?qiáng)基礎(chǔ)知識(shí)的學(xué)習(xí),實(shí)現(xiàn)從量變到質(zhì)變的轉(zhuǎn)化,為個(gè)人的長遠(yuǎn)發(fā)展打下基礎(chǔ)。素
質(zhì)
目
標(biāo)第9頁任務(wù)一
搭
建
Sp
ar
k
單
機(jī)
環(huán)
境
U不同的運(yùn)行環(huán)境已搭建完成,接下來就可以開發(fā)并運(yùn)行應(yīng)用程序了。在此之前,需要選擇合適的編程語言和開發(fā)工具,學(xué)習(xí)常用的PySpark命令,并掌握采用不同的部署模式運(yùn)行應(yīng)用程序的方法。本任務(wù)結(jié)合身份證戶籍地查詢案例,在PyCharm
中開發(fā)Spark應(yīng)用程序,并分別在Spark本地環(huán)境和集群環(huán)境中運(yùn)行應(yīng)用程序。任
務(wù)
描
述
第11頁Spark官方網(wǎng)站對(duì)其的定義是“ApacheSpark是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎”。由于Spark是UC
BerkeleyAMPlaboratory(加
州大學(xué)伯克利分校的AMP實(shí)驗(yàn)室)開源的類Hadoop
MapReduce的通用并行框架,是一個(gè)基于內(nèi)存計(jì)算、支持分布式計(jì)算和并行計(jì)算的大數(shù)據(jù)處理框架。第12頁搭建S
p
a
rk單機(jī)環(huán)境一
、S
p
a
r
k的發(fā)展歷程時(shí)間點(diǎn)說明2009年提供一個(gè)更快、更靈活、更易用的分布式計(jì)算框架,以便更好地進(jìn)行大規(guī)模數(shù)據(jù)處理和機(jī)器學(xué)習(xí)等任務(wù)2010年Spark正式發(fā)布開源代碼2013年Spark成為Apache軟件基金會(huì)的孵化器項(xiàng)目,解決了一些bug,增加了新的功能,并改進(jìn)了可用性問題2014年Spark成為Apache軟件基金會(huì)的頂級(jí)開源項(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頁時(shí)間點(diǎn)說
明2015年Spark1.5.x系列版本發(fā)布,提升了Spark的性能,增加了一些機(jī)器學(xué)習(xí)算法和工具等
使得Spark變得更為全面和強(qiáng)大2016年Spark2.0.x系列版本發(fā)布,大幅度改進(jìn)了API兼容性和查詢優(yōu)化器,支持結(jié)構(gòu)化的
流數(shù)據(jù)處理2017年Spark2.2.x系列版本發(fā)布,更新內(nèi)容主要針的是系統(tǒng)的可用性、穩(wě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頁時(shí)間點(diǎn)說
明2020年Spark3.0.0版本發(fā)布,能夠更好地支持Python和R語言,并提供了更強(qiáng)大的分布式SQL查詢引擎。加強(qiáng)了與Apache
Arrow、Delta
Lake等數(shù)據(jù)處理技術(shù)的集成2021年Spark3.1.1版本發(fā)布,提升了Python的可用性,增強(qiáng)了ANSI
SQL兼容性,加強(qiáng)了查
詢優(yōu)化等2022年Spark3.3.0版本發(fā)布,提升了查詢性能,簡(jiǎn)化了從傳統(tǒng)數(shù)據(jù)倉庫的遷移,提升效率2023年Spark3.4.0版本引入Python客戶端,增強(qiáng)結(jié)構(gòu)化數(shù)據(jù)流,增加Pandas
API的覆蓋范
圍,提供Numpy輸入支持,通過內(nèi)存分析提高開發(fā)效率和可調(diào)用性等一
、Sp
a
r
k的發(fā)展歷程搭建S
p
a
rk單機(jī)環(huán)境第15頁Spark是與HadoopMapReduce類似的通用并行計(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頁二
、S
p
a
r
k的
特
點(diǎn)搭建Spar
k單機(jī)環(huán)境Spark基于內(nèi)存的運(yùn)算效率快了100倍以上,基于磁盤的運(yùn)算效率快了10倍以上。Spark充分利用內(nèi)存對(duì)數(shù)據(jù)進(jìn)行計(jì)算,減少了對(duì)磁盤的讀寫操作,從而提高了Spark的計(jì)算效率。搭建S
p
a
rk單機(jī)環(huán)境二
、Sp
a
r
k的特點(diǎn)速
度
快第17頁(1)Spark支持Python、Scala、Java和R等多種編程語言,并提供了80多種高階算法。此外,研究人員可以通過PySpark或SparkShell進(jìn)行交互式編程。搭建Spark單機(jī)環(huán)境二
、Sp
a
rk的特點(diǎn)用
性
好(2)易第18頁Spark提供了多種完善的組件,如交互式查詢(Spark
SQL)、實(shí)時(shí)流處理(SparkStreaming)、機(jī)器學(xué)習(xí)庫(SparkMLlib)和圖計(jì)算(SparkGraphX)。Spark
支持上述組件在同一個(gè)應(yīng)用程序中無縫地結(jié)合使用,減少了大數(shù)據(jù)開發(fā)和維護(hù)的人力
成本和部署平臺(tái)的物力成本。通
用
性(3)強(qiáng)搭
建S
p
a
rk單機(jī)環(huán)境二
、Sp
a
r
k的特點(diǎn)第19頁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頁Spark功能強(qiáng)大,其應(yīng)用場(chǎng)景也十分廣泛。從宏觀角度出發(fā),可以將Spark的應(yīng)用場(chǎng)景歸納為數(shù)據(jù)科學(xué)應(yīng)用和數(shù)據(jù)處理應(yīng)用。第21頁三
、S
p
a
r
k的
應(yīng)
用
場(chǎng)
景搭建Spa
rk單機(jī)環(huán)境口Spark可以用來進(jìn)行數(shù)據(jù)分析和建模。口在數(shù)據(jù)分析方面,Spark提供了豐富的API來支持各種數(shù)據(jù)操作,如數(shù)據(jù)清洗、轉(zhuǎn)換、篩選、聚合等??跀?shù)據(jù)科學(xué)家對(duì)數(shù)據(jù)進(jìn)行初步分析,并從中發(fā)現(xiàn)有價(jià)值的信息。第22頁三
、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í)庫MLlib,該庫提供了一系列算法和工具,包括常見的機(jī)器學(xué)習(xí)算法、特征化工具等???/p>
提供了流式處理庫Streaming和圖處理庫GraphX,這些庫也可以用來解決許多數(shù)據(jù)科學(xué)應(yīng)用中的問題。搭建Spa
r
k單機(jī)環(huán)境三
、S
p
a
r
k的應(yīng)用場(chǎng)景第23頁□Spark可以實(shí)現(xiàn)快速查詢、實(shí)時(shí)日志采集處理、業(yè)務(wù)推薦、定制廣告、用戶圖計(jì)算等功能。主要應(yīng)用在廣告、推薦系統(tǒng)等業(yè)務(wù)中。口
廣告業(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頁三
、Sp
a
r
k的應(yīng)用場(chǎng)景搭建Spa
r
k單機(jī)環(huán)境數(shù)據(jù)處理應(yīng)用騰訊
騰訊大數(shù)據(jù)使用Spark平臺(tái)來支持挖掘分析類計(jì)算、交互式查詢計(jì)算,以及允許誤差范圍的快速計(jì)算。
□
SQL查詢性能普遍比MapReduce高
兩倍以上,利用內(nèi)存計(jì)算和內(nèi)存表的特性,至少在10倍以上???/p>
迭代計(jì)算與挖掘分析方面,精準(zhǔn)推薦將小時(shí)和天級(jí)別的模型訓(xùn)練轉(zhuǎn)變?yōu)镾park的分鐘級(jí)別的訓(xùn)練。口
圍繞“數(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頁三、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ù)不易等問題。口將圖處理庫應(yīng)用于多種計(jì)算場(chǎng)景,包括基于度分布的中樞節(jié)點(diǎn)發(fā)現(xiàn)、基
于最大連通圖的社區(qū)發(fā)現(xiàn)、基于三角形計(jì)算的關(guān)系衡量、基于隨機(jī)游走
的用戶屬性傳播等。第26頁三、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集群。□Spark已經(jīng)廣泛應(yīng)用于優(yōu)酷土豆的視頻推薦、廣告業(yè)務(wù)等場(chǎng)景。第27頁三、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é)者入門使用。由于Spark沒有提供文件存儲(chǔ)系統(tǒng),因此一般將Spark和Hadoop部署在一起,由Hadoop的HDFS、HBase等組件負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和管理。任
務(wù)
實(shí)
施
任務(wù)分析第28頁步驟1參考本書配套素材“
項(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頁1
.下載并安裝Sp
a
r
k搭建Spark單機(jī)環(huán)境時(shí),首先需要下載并安裝Spark,其安裝路徑為“/usr/local/spark”,具體操作如下。步驟2在Linux操作系統(tǒng)中打開瀏覽器,訪問“/dist/spark/”,在打開的頁面中單擊“spark-3.2.3/”鏈接文字,跳轉(zhuǎn)至下載界面,單擊“spark-3.2.3-bin-without-hadoop.tgz”鏈接文字,下載Spark安裝包,如圖所示。在Linux中,瀏覽器下載的內(nèi)容默認(rèn)存放在“home/hadoop下載”目錄下。其中,“hadoop”為Linux的用戶名。任
務(wù)
實(shí)
施
第30頁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頁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頁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頁1
.下載并安裝Spark步驟5執(zhí)行以下命令,將“spark”子目錄的所有權(quán)限賦予hadoop用戶。[hadoop@bogon
local]$sudochown-R
hadoop:hadoop
./spark任
務(wù)
實(shí)
施
第34頁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頁安裝完Spark后,需要在其配置文件中添加配置信息,配置不同的環(huán)境變量。具體操作如下。步驟2執(zhí)行以下命令,使用Vim編輯器打開“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頁2
.添加配置信息[h
a
d
o步驟3按“I”鍵進(jì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頁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頁步驟4配置完信息后,按“esc”鍵退出編輯模式,然后輸入“:wq”,最后按“Enter
”鍵保存并關(guān)閉配置文件。任
務(wù)
實(shí)
施
2
.
添加配置信息
第39頁任
務(wù)
實(shí)
施
2
.
添
加
配
置
信
息步驟5使用同樣方法,打開“.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頁使用同樣方法,打開“.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頁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頁2
.添加配置信息添加好配置信息后就可以直接使用Spark了,不需要像Hadoop那樣運(yùn)行啟動(dòng)命令。因此,通過運(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頁3
.驗(yàn)證Sp
a
r
k單機(jī)環(huán)境是否搭建成功為了能從大量的輸出信息中快速找到我們想要的執(zhí)行結(jié)果,可以使用“grep”命令進(jìn)行過濾。執(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頁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頁任務(wù)二搭
建
Sp
a
r
k
集群環(huán)境
USpark集群環(huán)境是由一臺(tái)或多臺(tái)計(jì)算機(jī)組成的分布式計(jì)算環(huán)境,這些計(jì)算機(jī)通
過網(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)境之前,我們先來學(xué)習(xí)一下Spark的生態(tài)系統(tǒng)、運(yùn)
行架構(gòu)、運(yùn)行基本流程和部署模式。任
務(wù)
描
述
第47頁Spark的設(shè)計(jì)遵循“一個(gè)軟件棧滿足不同應(yīng)用場(chǎng)景”的理念,因此逐漸形成了一套成熟的生態(tài)系統(tǒng)。Spark的生態(tài)系統(tǒ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頁□Spark生態(tài)系統(tǒng)以SparkCore為核心,專注于數(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頁第50頁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ù)等??诮⒃诮y(tǒng)一的抽象數(shù)據(jù)集(RDD)之上,提供用于創(chuàng)建分布式數(shù)據(jù)處理應(yīng)用程序的API。口旨在提高數(shù)據(jù)處理應(yīng)用程序的執(zhí)行效率,并允許在更廣泛的問題域中執(zhí)行交互式查詢和分析。第51頁一、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)用程序無縫銜接。口可以使用Python
、Scala
、Java或R語言的API實(shí)現(xiàn),具有易整合的特點(diǎn)??谔峁┰L問各種數(shù)據(jù)源的通用方法,以相同的方式連接到MySQL、Hive、HBase
等多種數(shù)據(jù)源。第52頁一、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
和TCP套接字等多種數(shù)據(jù)源中提取數(shù)據(jù)。
口提供多種API來表達(dá)復(fù)雜的處理算法。第53頁一、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>
由多種工具組成,包括分類、回歸、聚類、協(xié)同過濾等算法工具,特征提取、轉(zhuǎn)化、降維、選擇等特征化工具,線性代數(shù)、統(tǒng)計(jì)、數(shù)據(jù)處理等實(shí)用工具、底層的優(yōu)化原語和高層的管道API。第54頁一、S
p
ar
k的生態(tài)系統(tǒng)搭建Spa
rk集群環(huán)境口
SparkGraphX是用于處理和分析大規(guī)模圖數(shù)據(jù)的組件??谀軌蛲ㄟ^Spark的分布式計(jì)算能力有效解決傳統(tǒng)單機(jī)處理大規(guī)模圖數(shù)據(jù)的效率問題??谶€提供了一系列高級(jí)的圖形算法,幫助用戶分析和挖掘圖數(shù)據(jù)中有價(jià)值的信息。第55頁一、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頁一般情況下,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):用戶編寫的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頁口集群資源管理器(ClusterManager):負(fù)責(zé)資源管理和調(diào)度,根據(jù)應(yīng)用程序的需求來分配集群中的計(jì)算節(jié)點(diǎn)和內(nèi)存資源。常見的集群資源管理器類型有Standalone、YARN等
。口
工作節(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)存或者磁盤上,每個(gè)任務(wù)都有各自獨(dú)立的Executor。Executor是一個(gè)執(zhí)
行Task的容器。二
、Spar
k的運(yùn)行架構(gòu)搭建S
park集群環(huán)境第58頁口彈性分布式數(shù)據(jù)集(resilientdistributeddatasets,RDD):Spark中的基本數(shù)據(jù)結(jié)構(gòu),是一組不可變的分布式對(duì)象集合???/p>
有向無環(huán)圖(directedacyclicgraph,DAG):當(dāng)用戶提交一個(gè)作業(yè)時(shí),Spark會(huì)將其轉(zhuǎn)化為一組有向無環(huán)圖的形式,反映RDD之間的依賴關(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è)(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ù)相互依賴。二
、Spar
k的運(yùn)行架構(gòu)搭建S
park集群環(huán)境第60頁搭建Spa
rk集群環(huán)境總而言之,在Spark中
一個(gè)應(yīng)用由一個(gè)驅(qū)動(dòng)器和若干個(gè)作業(yè)組成,一個(gè)作
業(yè)可以劃分為多個(gè)階段,每個(gè)階段可以由多個(gè)任務(wù)
組成,如圖所示。第61頁任務(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.注銷并釋放資源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頁啟動(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頁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頁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頁搭建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頁□
SparkContext根據(jù)RDD之間的依賴關(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頁當(dāng)程序執(zhí)行完畢后,SparkContext向ClusterManager申請(qǐng)注銷并釋放申請(qǐng)的資源。第68頁三
、S
p
a
r
k運(yùn)行的基本流程搭建Spa
rk集群環(huán)境(6)注銷并釋放資源使用Spark進(jìn)行大規(guī)模數(shù)據(jù)計(jì)算與分析時(shí),需要將開發(fā)好的應(yīng)用程序部署到Spark上運(yùn)行。Spark的部署模式可以分為兩種類型,一種是本地部署模式,另一種是集群部署模式。第69頁四
、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頁四
、Spark的部署模式搭建Spa
rk集群環(huán)境1
.本地部署模式1
.本地部署模式通常情況下,Local部署模式適用于開發(fā)、測(cè)試和調(diào)試Spark應(yīng)用程序時(shí)的本地開發(fā)環(huán)境,并不適合部署到生產(chǎn)環(huán)境中使用。第71頁四
、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è)的實(shí)際生產(chǎn)環(huán)境。Spark集群部署模式包括Standalone部署模式、YARN部署模式和Kubernetes部署模式,它們的詳細(xì)介紹如下:搭建Spa
rk集群環(huán)境2
.集群部署模式四
、Spark的部署模式第73頁
St
a
n
d
a
lo
n
e部署模式Standalone部署模式是指在Spark集群中沒有使用資源管理框架(如YARN)的部署模式。在這種部署模式下,由Spark的Master節(jié)點(diǎn)管理整個(gè)集群的計(jì)算資源,并將任務(wù)分發(fā)給Worker節(jié)點(diǎn)進(jìn)行執(zhí)行。第74頁搭
建Spa
rk集群環(huán)境四
、S
p
a
r
k的部署模式2
.集群部署模式
Stan
d
a
lo
n
e部署模式Spark應(yīng)用程序通過與Master節(jié)點(diǎn)通信來請(qǐng)求資源,然后Master節(jié)點(diǎn)根據(jù)Worker節(jié)點(diǎn)的負(fù)載和可用性將任務(wù)分配給它們。Standalone部署模式的構(gòu)建過程非常簡(jiǎn)單,并且比其他部署模式更容易維護(hù)。搭建Spa
rk集群環(huán)境2
.集群部署模式四
、Spark的部署模式第75頁
Stan
d
a
lo
n
e部署模式由于它缺乏資源管理框架所提供的一些高級(jí)特性,導(dǎo)致它在大規(guī)模集群的管理、資源調(diào)度等方面可能會(huì)有一些局限性。搭建Spa
rk集群環(huán)境2
.集群部署模式四
、Spark的部署模式第76頁
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頁
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頁
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頁
Ku
ber
n
e
te
s部署模式Kubernetes部署模式是將Spark應(yīng)用程序部署到運(yùn)行著Kubernetes的集群中。Kubernetes是一種開源容器編排系統(tǒng),它可以管理分布式應(yīng)用程序在容器化環(huán)境中的部署、擴(kuò)展和維護(hù)。搭建Spa
rk集群環(huán)境2
.集群部署模式四
、Spark的部署模式第80頁
Ku
ber
n
e
te
s部署模式在Kubernetes中,Spark應(yīng)用程序可以通過使用操作性資源規(guī)范定義所需的計(jì)算和存儲(chǔ)資源,以及工作負(fù)載的調(diào)度和啟動(dòng)策略。具有高可用性、自動(dòng)擴(kuò)展、故障恢復(fù)等強(qiáng)大的特性。搭建Spa
rk集群環(huán)境2
.集群部署模式四
、Spark的部署模式第81頁
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頁
任務(wù)分析Spark集群環(huán)境可以分為Spark偽分布式集群環(huán)境和Spark完全分布式集群環(huán)境。Spark偽分布式集群環(huán)境是指在一臺(tái)計(jì)算機(jī)上模擬分布式計(jì)算的環(huán)境,其原理是通過在一臺(tái)計(jì)算機(jī)上運(yùn)行多個(gè)進(jìn)程來模擬集群中的各個(gè)節(jié)點(diǎn),從而并行處理數(shù)據(jù),常用于開發(fā)、測(cè)試和調(diào)試應(yīng)用程序。任
務(wù)
實(shí)
施第83頁
任務(wù)分析Spark完全分布式集群環(huán)境則是指由多臺(tái)計(jì)算機(jī)組成的分布式計(jì)算環(huán)境,每個(gè)
節(jié)點(diǎn)都有自己的CPU、內(nèi)存和磁盤資源,并且Spark應(yīng)用程序可以跨多個(gè)節(jié)點(diǎn)進(jìn)行并行計(jì)算,常用于處理企業(yè)實(shí)際生產(chǎn)環(huán)境中的業(yè)務(wù)。任
務(wù)
實(shí)
施第84頁步驟1搭建Spark偽分布式集群環(huán)境參考任務(wù)一中的任務(wù)實(shí)施,搭建Spark單機(jī)環(huán)境。參考本書配套素材“項(xiàng)目一”/“搭建Hadoop偽分布式集群”文檔,搭建Hadoop偽分布式集群。Spark偽分布式集群環(huán)境一般與Hadoop偽分布式集群部署在一起,具體的操作方法如下:1
.搭建Sp
a
r
k偽分布式集群環(huán)境任
務(wù)
實(shí)
施第85頁步驟2執(zhí)行以下命令,查詢自己計(jì)算機(jī)的IP地址,用于設(shè)置配置信息。IP地址的查詢結(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頁[hadoop@bogon~]$cd/usr/local/spark/conf#打開“spark-env.sh”
配置文件[hadoop@bogon
conf]$vim
spark-env.sh#配置信息,將此處的IP地址修改為步驟2查詢到的IP
地址export
SPARK_MASTER_IP=
34export
SPARK_LOCAL_IP=
34SPARK_MASTER_PORT=7077任
務(wù)
實(shí)
施
1
.搭建Sp
a
r
k偽分布式集群環(huán)境
第87頁執(zhí)行以下命令,打開“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頁步驟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頁[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頁步驟1搭建Spark完全分布式集群環(huán)境參考任務(wù)一中的任務(wù)實(shí)施,搭建Spark單機(jī)環(huán)境。參考“項(xiàng)目一”/“搭建Hadoop完全分布式集群”文檔,搭建Hadoop完全分布式集群。任
務(wù)
實(shí)
施
2
.搭建Sp
ar
k完全分布式集群環(huán)境
第91頁步驟2在Master節(jié)點(diǎn)上執(zhí)行以下命令,打開“.bashrc”配置文件,添加以下配置信[hadoop@Master~]$vim~1.bashrc#配置信息export
SPARK_HOME=/usr/local/sparkexportPATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin任
務(wù)
實(shí)
施第92頁
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頁步驟4在Master節(jié)點(diǎn)上執(zhí)行以下命令,復(fù)制“workers.template”配置文件,并命名為“workers”;打開“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頁[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”;打開“spark-env.sh”配
置文件,添加以下配置信息。2
.搭建Sp
ar
k完全分布式集群環(huán)境步驟5任
務(wù)
實(shí)
施第95頁步驟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頁任
務(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頁分別在Worker1和
Worker2節(jié)點(diǎn)上執(zhí)行以下命令,解
壓從Master節(jié)點(diǎn)上復(fù)制過來的“~1.spark.master.tar.gz”文件,并賦予權(quán)限給hadoop
用戶。#刪除已經(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
用戶[hadoop@Worker1
~]$sudochown-Rhadoop
/usr/local/s
park2
.搭建Sp
ar
k完全分布式集群環(huán)境任
務(wù)
實(shí)
施步驟8第98頁步驟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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025個(gè)人知識(shí)產(chǎn)權(quán)質(zhì)押貸款合同范本二零二五3篇
- 2025年度危險(xiǎn)化學(xué)品堆放場(chǎng)地租賃及安全管理合同3篇
- 2025年度特色美食街餐飲資源承包合作合同3篇
- 2025年度星級(jí)酒店餐飲部承包經(jīng)營合同范本3篇
- 2025年度塔吊設(shè)備租賃、維修及保養(yǎng)綜合服務(wù)合同4篇
- 2025年度生活用品代購委托合同4篇
- 2025年度塔吊司機(jī)職業(yè)健康體檢服務(wù)合同范本2篇
- 2024種植業(yè)土地租賃合同
- 2025年度消防安全責(zé)任合同范本詳解3篇
- 2024版內(nèi)部施工合同
- 2025年工程合作協(xié)議書
- 2025年山東省東營市東營區(qū)融媒體中心招聘全媒體采編播專業(yè)技術(shù)人員10人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年宜賓人才限公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- KAT1-2023井下探放水技術(shù)規(guī)范
- 垃圾處理廠工程施工組織設(shè)計(jì)
- 天皰瘡患者護(hù)理
- 駕駛證學(xué)法減分(學(xué)法免分)題庫及答案200題完整版
- 2024年四川省瀘州市中考英語試題含解析
- 2025屆河南省九師聯(lián)盟商開大聯(lián)考高一數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 撫養(yǎng)權(quán)起訴狀(31篇)
- 2024年“一崗雙責(zé)”制度(五篇)
評(píng)論
0/150
提交評(píng)論