版權(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
和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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東酒店管理職業(yè)技術(shù)學(xué)院《客艙服務(wù)操作與管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東建設(shè)職業(yè)技術(shù)學(xué)院《電子商務(wù)企業(yè)運(yùn)營(yíng)沙盤(pán)實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東海洋大學(xué)《證券與投資》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東東軟學(xué)院《大數(shù)據(jù)處理與智能決策》2023-2024學(xué)年第一學(xué)期期末試卷
- 《課件工傷保險(xiǎn)》課件
- SWOT分析培訓(xùn)課件
- 《經(jīng)濟(jì)型連鎖酒店》課件
- 贛州師范高等專(zhuān)科學(xué)?!督逃龜?shù)據(jù)挖掘理論與實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛東學(xué)院《生物工程進(jìn)展與創(chuàng)業(yè)指導(dǎo)》2023-2024學(xué)年第一學(xué)期期末試卷
- 七年級(jí)科學(xué)上冊(cè)10.1.1身體降的標(biāo)志學(xué)案無(wú)答案牛津上海版
- 2024年浙江省寧波寧??h事業(yè)單位公開(kāi)招聘85人歷年公開(kāi)引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 校區(qū)熱水供水系統(tǒng)維護(hù)服務(wù)第冊(cè)維保服務(wù)方案
- 2024年重慶鐵路投資集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 研學(xué)教育項(xiàng)目商業(yè)計(jì)劃書(shū)
- MOOC 創(chuàng)新思維與創(chuàng)業(yè)實(shí)驗(yàn)-東南大學(xué) 中國(guó)大學(xué)慕課答案
- 新生兒先心病篩查工作計(jì)劃
- (2024年)Maya三維建模教案
- 新能源汽車(chē)研發(fā)合作協(xié)議書(shū)
- 國(guó)開(kāi)電大本科《理工英語(yǔ)4》機(jī)考真題(第六套)
- 四川省成都市2023-2024學(xué)年高二上學(xué)期期末校級(jí)調(diào)研聯(lián)考數(shù)學(xué)試題【含答案解析】
- 4s店管理的年度工作總結(jié)
評(píng)論
0/150
提交評(píng)論