




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
大數(shù)據(jù)技術(shù)之Spark
第1部分Spark基礎(chǔ)
第1章Spark概述
本章介紹Spark的一些基本認(rèn)識.
SpAPcACiHrEKT<
1.1什么是Spark
Spark是一個(gè)快速(基于內(nèi)存),通用,可擴(kuò)展的集群計(jì)算引擎
并且Spark目前已經(jīng)成為Apache最活躍的開源項(xiàng)目,有超過1000個(gè)活躍的貢獻(xiàn)者.
1.1.1歷史
1.2009年,Spark誕生于UCBerkeley(加州大學(xué)伯克利分校,CAL)的
AMP實(shí)驗(yàn)室,項(xiàng)目采用Scala編程語言編寫.
2.2010年,Spark正式對外開源
3.2013年6月,進(jìn)入Apache孵化器
4.2014年,成為Apache的頂級項(xiàng)目.
5.目前最新的版本是2.4.4(2.1.1)
參考:/history.html
1.2Spark特點(diǎn)
1.2.1快速
與Hadoop的MapReduce相比,Spark基于內(nèi)存的運(yùn)算是MapReduce的100倍.基
于硬盤的運(yùn)算也要快10倍以上.
Spark實(shí)現(xiàn)了高效的DAG執(zhí)行引擎,可以通過基于內(nèi)存來高效處理數(shù)據(jù)流
Speed
Runworkloads100xfaster,■Hadoop
■Spark
ApacheSparkachieveshighperformanceforbothbatchandstreaming
data,usingastate-of-the-artDAGscheduler,aqueryoptimizer,anda
physicalexecutionengine.
LogisticregressioninHadoopandSpark
1.2.2易用
Spark支持Scala,Java,Python,R和SQL腳本,并提供了超過80種高性能的算法,
非常容易創(chuàng)建并行App
而且Spark支持交互式的Python和Scala的shell,這意味著可以非常方便地在這些
shell中使用Spark集群來驗(yàn)證解決問題的方法,而不是像以前一樣需要打包,上傳集群,
驗(yàn)證等.這對于原型開發(fā)非常重要.
EaSeOfUsedf=spark.read.jsonciogs.json")
df.where("age>21")
WriteapplicationsquicklyinJava,Scala,Python,R,.seiect(uname.first1').show()
andSQL.Spark'sPythonDataFrameAPI
ReadJSONfileswithautomaticschemainference
Sparkoffersover80high-leveloperatorsthatmakeiteasytobuildparallel
apps.AndyoucanuseitinteractivelyfromtheScala,Python,R,andSQL
shells.
1.2.3通用
Spark結(jié)合了SQL,Streaming和復(fù)雜分析.
Spark提供了大量的類庫,包括SQL和DataFrames,機(jī)器學(xué)習(xí)(MLlib),圖計(jì)算
(GraphicX),實(shí)時(shí)流處理(SparkStreaming).
可以把這些類庫無縫的柔和在一個(gè)App中.
減少了開發(fā)和維護(hù)的人力成本以及部署平臺的物力成本.
Generality
CombineSQL,streaming,andcomplexanalytics.SparkSparkMLlibGraphX
SQLStreaming(machine(graph)
SparkpowersastackoflibrariesincludingSQLandDataFrames,MUibforlearning)
machinelearning,GraphX,andSparkStreaming.Youcancombinethese
librariesseamlesslyinthesameapplication.ApacheSpark
1.2.4可融合性
Spark可以非常方便的與其他開源產(chǎn)品進(jìn)行融合.
比如,Spark可以使用Hadoop的YARN和AppacheMesos作為它的資源管理和調(diào)度
器,并且可以處理所有Hadoop支持的數(shù)據(jù),包括HDFS,HBase等.
RunsEverywhere
SparkrunsonHadoop,ApacheMesos,Kubemetes,
standalone,orinthecloud.ItcanaccessdiversedataSpark
sources,
YoucanrunSparkusingitsstandaloneclustermode,onEC2,onHadoopcassandra
YARN,onMesos,oronKubemetes.AccessdatainHDFS,Alluxio,Apache
Cassandra,ApacheHBase,ApacheHive,andhundredsofotherdataMESOS
sources.
kubernetes
1.3Spark內(nèi)置模塊介紹
SparkSpark
SparkMlib
StreamingGraghX
機(jī)器學(xué)習(xí)
實(shí)時(shí)計(jì)算圖計(jì)算
SparkCore
獨(dú)立調(diào)度器YARNMesos
1.3.1集群管理器(ClusterManager)
Spark設(shè)計(jì)為可以高效地在一個(gè)計(jì)算節(jié)點(diǎn)到數(shù)千個(gè)計(jì)算節(jié)點(diǎn)之間伸縮計(jì)算。
為了實(shí)現(xiàn)這樣的要求,同時(shí)獲得最大靈活性,Spark支持在各種集群管理器(Cluster
Manager)上運(yùn)行,目前Spark支持3種集群管理器:
1.HadoopYARN(在國內(nèi)使用最廣泛)
2.ApacheMesos(國內(nèi)使用較少,國外使用較多)
3.Standalone(Spark自帶的資源調(diào)度器,需要在集群中的每臺節(jié)點(diǎn)上配置
Spark)
1.3.2SparkCore
實(shí)現(xiàn)了Spark的基本功能,包含任務(wù)調(diào)度、內(nèi)存管理、錯(cuò)誤恢復(fù)、與存儲系統(tǒng)交互等模塊。
SparkCore中還包含了對彈性分布式數(shù)據(jù)集(ResilientDistributedDataSet,簡稱RDD)的
API定義。
1.3.3SparkSQL
是Spark用來操作結(jié)構(gòu)化數(shù)據(jù)的程序包。通過SparkSql,我們可以使用SQL或者
ApacheHive版本的SQL方言(HQL)來查詢數(shù)據(jù)。SparkSQL支持多種數(shù)據(jù)源,比如
Hive表、Parquet以及JSON等。
1.3.4SparkStreaming
是Spark提供的對實(shí)時(shí)數(shù)據(jù)進(jìn)行流式計(jì)算的組件。提供了用來操作數(shù)據(jù)流的API,并且與
SparkCore中的RDDAPI高度對應(yīng)。
1.3.5SparkMLlib
提供常見的機(jī)器學(xué)習(xí)(ML)功能的程序庫。包括分類、回歸、聚類、協(xié)同過濾等,還提供
了模型評估、數(shù)據(jù)導(dǎo)入等額外的支持功能。
Spark
ClusterManager
(YARN,Mesos,Standalone)
~~T~~r~
DistributedStorage
(Cassandra,S3,HDFS)
111
Spark得到了眾多大數(shù)據(jù)公司的支持,這些公司包括Hortonworks舊M、Intel、
Cloudera.MapR、Pivotal,百度、阿里、騰訊、京東、攜程、優(yōu)酷土豆。
當(dāng)前百度的Spark已應(yīng)用于大搜索、直達(dá)號、百度大數(shù)據(jù)等業(yè)務(wù);
阿里利用GraphX構(gòu)建了大規(guī)模的圖計(jì)算和圖挖掘系統(tǒng),實(shí)現(xiàn)了很多生產(chǎn)系統(tǒng)的推薦算法;
騰訊Spark集群達(dá)到8000臺的規(guī)模,是當(dāng)前已知的世界上最大的Spark集群。
第2章Spark運(yùn)行模式
本章介紹在各種運(yùn)行模式如何運(yùn)行Spark應(yīng)用.
首先需要下載Spark
1.官網(wǎng)地址/
2.文檔查看地址https://spark.apache.Org/docs/2.1.1/
3.下載地址/dist/spark/
目前最新版本為2.4.4,考慮到國內(nèi)企業(yè)使用情況我們?nèi)匀贿x擇211來學(xué)習(xí).不過2.X.X
的版本差別都不大.
2.1Local模式
Local模式就是指的只在一臺計(jì)算機(jī)上來運(yùn)行Spark.
通常用于測試的目的來使用Local模式,實(shí)際的生產(chǎn)環(huán)境中不會使用Local模式.
2.1.1解壓Spark安裝包
把安裝包上傳至!]/。口亡/5。,上卬(7廣6/下,并解壓至!]/opt/moduLe/目錄下
tar-zxvfspark-2.1.1-bin-hadoop2.7.tgz-C/opt/module
然后復(fù)制剛剛解壓得到的目錄,并命名為spark-LocaL:
cp-rspark-2.1.1-bin-hadoop2.7spark-local
2.1.2運(yùn)行官方求P工的案例
bin/spark-submit\
--cLassorg.apache.spark.examples.SparkPi\
--masterLocaL[2]\
,/exampLes/jars/spark-exampLes_2.11-2.1.1.jar100
注意:
?如果你的sheLL是使用的zsh,則需要把力口上弓I號:‘LOCQH2J'
說明:
?使用spark-submit來發(fā)布應(yīng)用程序.
-語法:
./bin/spark-submit\
--cLass<main-cLass>\
--master<master-urL>\
--deploy-mode<depLoy-mode>\
--conf<hey>=<vaLue>\
???#otheroptions
<appLication-jar>\
[appLication-arguments]
---master指定master的地址,默認(rèn)為LocaL.表示在本機(jī)運(yùn)行.
---cLass你的應(yīng)用的啟動類(如
org.apache.sparh.exampLes.SparkPi)
?--depLoy-mode是否發(fā)布你的驅(qū)動到worker節(jié)點(diǎn)(cluster模式)或者作
為一個(gè)本地客戶端(cLient模式)(default:cLient)
?--conf:任意的Spark配置屬性,格式如果值包含空格,可
以加引號"hey=vaLue"
?appLication-jar:打包好的應(yīng)用jar,包含依賴.這個(gè)URL在集群中全局
可見。比如hdfs://共享存儲系統(tǒng),如果是于tie://path,那么所有的
節(jié)點(diǎn)的path都包含同樣的jar
?appLieation-arguments:傳給勿at”方法的參數(shù)
?--executor-memory1G指定每個(gè)executor可用內(nèi)存為1G
?--totaL-executor-cores6指定所有executor使用的epu核數(shù)為6個(gè)
?--executor-cores表示每個(gè)executor使用的epu的核數(shù)
關(guān)于MasterURL的說明
MasterURLMeaning
LocaL
RunSparklocallywithoneworkerthread(i.e.noparallelismat
all).
LocaL[K]
RunSparklocallywithKworkerthreads(ideally,setthistothe
numberofcoresonyourmachine).
LocaL[*]
RunSparklocallywithasmanyworkerthreadsaslogicalcores
onyourmachine.
spark://HOST:PORT
ConnecttothegivenSparkstandaloneclustermaster.Theport
mustbewhicheveroneyourmasterisconfiguredtouse,whichis
7077bydefault.
mesos://HOST:PORT
ConnecttothegivenMesoscluster.Theportmustbewhichever
oneyourisconfiguredtouse,whichis5050bydefault.Or,fora
MesosclusterusingZooKeeper,usemesos://zk://....To
submitwith--depLoy-modeduster,theHOSTPORTshould
beconfiguredtoconnecttotheMesosClusterDispatcher.
yarn
ConnecttoaYARNclusterincLientorcLustermode
dependingonthevalueof-deploy-mode.Theclusterlocation
willbefoundbasedontheHADOOPCONFDIRor
YARNCONFDIRvariable.
2.1.2.1結(jié)果展ZK
該算法是利用蒙特?卡羅算法求PI
LOCAL,6026bytes)
19/01/3121:49:44INFOTaskSetManager:Finishedtask97.0instage0.0(TID97)in27msonlocalhc
19/01/3121:49:44INFOExecutor:Runningtask99.0instage0.0(TID99)
19/01/3121:49:44INFOExecutor:Finishedtask99.0instage0.0(TID99).1041bytesresultsentt
19/01/3121:49:44INFOTaskSetManager:Finishedtask99.0instage0.0(TID99)in18msonlocalhc
19/01/3121:49:44INFOExecutor:Finishedtask98.0instage0.0(TID98).1041bytesresultsentt
19/01/3121:49:44INFOTaskSetManager:Finishedtask98.0instage0.0(TID98)in41msonlocalhc
19/01/3121:49:44INFOTaskSchedulerlmpl:RemovedTaskSet0.0,whosetaskshaveallcompleted,fron
19/01/3121:49:44INFODAGScheduler:Resultstage0(reduceatSparkPi.scala:38)finishedin1.852s
19Z0JLZ31-21:49J44INEQJDAGScheduler:Job0finished:reduceatSparkPi.scala:38,took2.195049s
Piisroughly3.1425879142587916
卬EFoppedSparkwebUIathttp://192.168.43.201:4040
19/01/3121:49:44INFOMapOutputTrackerMasterEndpoint:MapOutputTrackerMasterEndpointstopped!
19/01/3121:49:44INFOMemoryStore:MemoryStorecleared
19/01/3121:49:44INFOBlockManager:BlockManagerstopped
19/01/3121:49:44INFOBlockManagerMaster:BlockManagerMasterstopped
19/01/3121:49:44INFOOutputCommitCoordinatorJOutputCommitCoordinatorEndpoint:OutputCommitCoordir
19/01/3121:49:44INFOSparkContext:SuccessfullystoppedSparkContext
19/01/3121:49:44INFOShutdownHookManager:Shutdownhookcalled
19/01/3121:49:44INFOShutdownHookManager:Deletingdirectory/tmp/spark-536f79e0-bc9a-4899-97ad-c
備注:也可以使用rur-exa/npLes來運(yùn)行
bin/run-exampleSparkPi100
2.1.3使用Spark-shell
Spark-shell是Spark給我們提供的交互式命令窗口(類似于Scala的REPL)
本案例在Spark-shell中使用Spark來統(tǒng)計(jì)文件中各個(gè)單詞的數(shù)量.
步驟1:創(chuàng)建2個(gè)文本文件
mkdirinput
cdinput
touchl.txt
touch2.txt
分別在1.txt和2.txt內(nèi)輸入一些單詞.
步驟2:打開Spark-shell
bin/spark-shell
??bin/spork-shell
UsingSpark'sdefaultlog4jprofile:org/apache/spark/log4j-defaperties
Settingdefaultloglevelto"WARN".
Toadjustlogginglevelusesc.setLogLevel(newLevel).ForSparkR,usesetLogLevel(newLevel).
19/01/3123:58:39WARNNativeCodeLoader:Unabletoloadnative-hadooplibraryforyourplatform...usingbuiltin-javaclasseswher
eapplicable
19/01/3123:58:45WARNObjectstore:Versioninformationnotfoundinmetastore,hive.metastore.schema.verificotionisnotenabled
sorecordingtheschemaversion1.2.0
19/01/3123:58:46WARNObjectStorc:Failedtogetdatabasedefault,returningNoSuchObjectException
19/01/3123:58:46WARNObjectstore:Failedtogetdatabaseglobal_temp,returningNoSuchObjectException
SparkcontextWebUIavailableathttp://192.168.43.201:4040
Sparkcontextavailableas'sc*(master-local[*],oppid-local-1548950320710).
Sparksessionavailableas'spark'.
Welcometo
/一/.一八/_人\version2.1.1
/」
UsingScalaversion2.11.8(JavaHotSpot(TM)64-BitServerVM,Java1.8.0_172)
Typeinexpressionstohavethemevaluated.
Type:helpformoreinformation.
seals|
步驟3:查看進(jìn)程和通過web查看應(yīng)用程序運(yùn)行情況
”bin/spark-shell
UsingSpark'sdefaultlog4jprofile:org/apache/spark/log4j-defaults.properties
Settingdefaultloglevelto"WARN”.
Toadjustlogginglevelusesc.setLogLevel(newLevel).ForSparkR,usesetLogLevel(newLevel).
19/01/3123:58:39WARNNativeCodeLoader:Unabletoloadnotive-hadooplibraryforyourplatform...usingbuiltin-javaclasseswher
eapplicable
19/01/3123:58:45WARNObjectstore:Versioninformationnotfoundinmetastore,hive.metastore.schema.verificationisnotenabled
sorecordingtheschemaversion1.2.0
19/01/3123:58:46WARNObjectstore:Failedtogetdatabasedefault,returningNoSuchObjectException
19/01/3123:58:46WARNObjectStore:Failedtogetdatabaseglobal_te呷,returningNoSuchObjectException
SparkcontextWebUiavailableathttp://192.168.43.201:4040
Sparkcontextovailabreas^c*(master-localf*],oppid-local-1548950320710).
Sparksessionavailableas'spark'.
Welcometo
/T7_______/-7_
v_v_v_/1_/
/___//、、」」/_A-\version2.1.1
1J
UsingScalaversion2.11.8(JavaHotSpot(TM)64-BitServerVM,Java1.8.0_172)
Typeinexpressionstohavethemevaluated.
Type:helpformoreinformation.
seals|
地址:http://hadoop201:4040
JobsStagesStorageEnvironmentExecutorsSQL
SparkJobs⑺
Useratguigu
TotalUptime:6.1min
SchedulingMode:FIFO
?EventTimeline
步驟4:運(yùn)行Mordcount程序
sc.textFiLe("input/").fLatMap(_.spLit("")).map((__j1)).reduceByKey(_
+_).coLLect
scala>sc.textFile("input/").flatMap(_.split("w)).map(1)).reduceByKey(_-i-_).collect
res7:Array[(String,Int)]=Array((are,2)f(how,2),(hello,4),(atguigu,2)7(world,2),(you,2))
步驟5:登錄hadoop201:4040查看程序運(yùn)行
SparkJobs⑺
UMcatguigu
TotalUptime:,2EM
SchedulingMode:FIFO
CompletedJobs:1
?Ewn'Dmaln*
CompletedJobs(1)
JobM?DMcriptkxi
0coSactat<corwolv>252O1WO2AJ100:44:200.4a2/2
2.1.4提交流程
Spark通用運(yùn)行簡易流程
汐Spark通用運(yùn)行簡易流程◎尚硅谷
2.1.5wordcount數(shù)據(jù)流程分析:
WordCount案例分析
sc.textFile("input"),flatMap(_.split("")),map((_,l)).reduceByKey(_+_).collect
1.textFiLe("input"):讀取本地文件input文件夾數(shù)據(jù);
2.")).?壓平操作,按照空格分割符將一行數(shù)據(jù)映射成一個(gè)
個(gè)單詞;
3.加.?對每一個(gè)元素操作,將單詞映射為元組;
4.reduceByKey(_+_):按照key將值進(jìn)行聚合,相加;
5.coLLect:將數(shù)據(jù)收集到Driver端展示。
2.2Spark核心概念介紹
2.2.1Master
Spark特有資源調(diào)度系統(tǒng)的Leader。掌管著整個(gè)集群的資源信息,類似于Yarn框架中
的ResourceManager,主要功能:
1.監(jiān)聽Worker,看Worker是否正常工作;
2.Master對Worker>Application等的管理(接收Worker的注冊并管理所有的
Worker,接收Client提交的Application,調(diào)度等待的Application并向
Worker提交)。
2.2.2Worker
Spark特有資源調(diào)度系統(tǒng)的Slave,有多個(gè)。每個(gè)Slave掌管著所在節(jié)點(diǎn)的資源信息,
類似于Yarn框架中的NodeManager,主要功能:
1.通過RegisterWorker注冊到Master;
2.定時(shí)發(fā)送心跳給Master;
3.根據(jù)Master發(fā)送的Application配置進(jìn)程環(huán)境,并啟動ExecutorBackend(執(zhí)行
Task所需的臨時(shí)進(jìn)程)
2.2.3driverprogram(驅(qū)動程序)
每個(gè)Spark應(yīng)用程序都包含一個(gè)驅(qū)動程序;驅(qū)動程序負(fù)責(zé)把并行操作發(fā)布到集群上.
驅(qū)動程序包含Spark應(yīng)用程序中的主函數(shù)定義了分布式數(shù)據(jù)集以應(yīng)用在集群中.
在前面的wordcou戊案例集中,spark?shell就是我們的驅(qū)動程序,所以我們可以在其中鍵
入我們?nèi)魏蜗胍牟僮鳎缓笥伤?fù)責(zé)發(fā)布.
驅(qū)動程序通過SparkContext對象來訪問Spark,SparkContext對象相當(dāng)于一個(gè)到
Spark集群的連接.
在spark-shell中,會自動創(chuàng)建一個(gè)對象,并把這個(gè)對象命名為5c
11
Sparkcontextavailableassc(master=local[*]zappid=local-1548988913574
).
Sparksessionavailableas'sparz*.
Welcometo
_\V'J
/____/?_/'_,_/_//_八_\version2.1.1
~J—
UsingScalaversion2.11.8(JavaHotspot(TM)64-BitServerVM,Java1.8.0_172)
Typeinexpressionstohavethemevaluated.
Type:helpformoreinformation.
scala>sc
resO:org?apache.spark.SparkContext=org,apache,spark,SparkContext@12811f95
2.2.4executor(執(zhí)行器)
SparkContext對象一旦成功連接到集群管理器,就可以獲取到集群中每個(gè)節(jié)點(diǎn)上的執(zhí)行
^(executor).
執(zhí)行器是一個(gè)進(jìn)程(進(jìn)程名:ExecutorBackend,運(yùn)行在Worker節(jié)點(diǎn)上),用來執(zhí)行計(jì)算和
為應(yīng)用程序存儲數(shù)據(jù).
然后,Spark會發(fā)送應(yīng)用程序代碼(比如:jar包)到每個(gè)執(zhí)行器.最后,Spar/?Co“text對象發(fā)
送任務(wù)到執(zhí)行器開始執(zhí)行程序.
DriverProgram
SparkContextClusterManager
2.2.5RDDs(ResilientDistributedDataset)彈性分布式數(shù)據(jù)集
一旦擁有了SparkContext對象,就可以使用它來創(chuàng)建RDD了.在前面的例子中,我們
調(diào)用sc.textFile(...)來創(chuàng)建了一個(gè)RDD,表示文件中的每一行文本.我們可以對這些文本
行運(yùn)行各種各樣的操作.
在第二部分的SparkCore中,我們重點(diǎn)就是學(xué)習(xí)RDD.
2.2.6clustermanagers(集群管理器)
為了在一個(gè)Spark集群上運(yùn)行計(jì)算,SparkContext對象可以連接到幾種集群管理器
(Spark'sownstandaloneclustermanager,MesosorYARN).
集群管理器負(fù)責(zé)跨應(yīng)用程序分配資源.
2.2.7專業(yè)術(shù)語列表
TermMeaning
ApplicationUserprogrambuiltonSpark.Consistsofadriverprogramandexecutors
onthecluster.(構(gòu)建于Spark之上的應(yīng)用程序.包含驅(qū)動程序和運(yùn)行在集
群上的執(zhí)行器)
ApplicationAjarcontainingtheuser'sSparkapplication.Insomecasesuserswillwant
jartocreatean“uberjar5'containingtheirapplicationalongwithits
dependencies.Theuser'sjarshouldneverincludeHadooporSpark
libraries,however,thesewillbeaddedatruntime.
DriverThethreadrunningthemain()functionoftheapplicationandcreatingthe
programSparkContext
ClusterAnexternalserviceforacquiringresourcesonthecluster(e.g.standalone
managermanager,Mesos,YARN)
DeployDistinguisheswherethedriverprocessruns.In"cluster"mode,the
modeframeworklaunchesthedriverinsideofthecluster.In“client”mode,the
submitterlaunchesthedriveroutsideofthecluster.
WorkerAnynodethatcanrunapplicationcodeinthecluster
node
ExecutorAprocesslaunchedforanapplicationonaworkernode,thatrunstasks
andkeepsdatainmemoryordiskstorageacrossthem.Eachapplication
hasitsownexecutors.
TaskAunitofworkthatwillbesenttooneexecutor
JobAparallelcomputationconsistingofmultipletasksthatgetsspawnedin
responsetoaSparkaction(e.g.save,collect);youllseethistermused
inthedriver'slogs.
StageEachjobgetsdividedintosmallersetsoftaskscalledstagesthatdepend
oneachother(similartothemapandreducestagesinMapReduce);youll
seethistermusedinthedriver'slogs.
2.3Standalone模式
構(gòu)建一個(gè)由Master+Slave構(gòu)成的Spark集群,Spark運(yùn)行在集群中。
這個(gè)要和Hadoop中的Standalone區(qū)別開來.這里的Standalone是指只用Spark來
搭建一個(gè)集群,不需要借助其他的框架.是相對于Yarn和Mesos來說的.
2.3.1配置Standalone模式
步驟1:復(fù)制spark,并命名為
cp-rspark-2.I.l-bin-hadoop2.7spark-standalone
步驟2:進(jìn)入配置文件目錄corf,配置spar/?-evr).5?
cdconf/
cpspark-env,sh?templatespark-env.sh
在spark-env.sh文件中配置如下內(nèi)容:
SPARK_MASTER_HOST=hadoop201
SPARK_MASTER_PORT=7077#默認(rèn)端口就是7077,可以省略不配
步驟3:修改slaves文件,添加worker節(jié)點(diǎn)
cpslaves.templateslaves
在staves文件中配置如下內(nèi)容:
hadoop201
hadoop202
hadoop203
步驟4:分發(fā)spark-standaLone
步驟5:啟動Spark集群
sbin/start-all.sh
/opt/module/spark-standalone?myjps
hadoop201
21204Master
21387Jps
21295Worker
-hadoop202
16321Worker
16408Jps
hadoop203
25299Worker
25389Jps
可能碰到的問題
如果啟動的時(shí)候報(bào):isnotset,貝ij在sbtn/spar/?-config.s/?中添力口
入變量即可.不要忘記分發(fā)修改的文件
hodoop201:JAVA_HOMEisnotset
hadoopZOl:fulllogin/opt/module/spark-standalone/logs/spark-atguigu-org.apache.spark.deploy.worker.Worker-l-hadoop201.out
hadoop202:failedtolaunch:nice-n0/opt/module/spork-standalone/bin/spark-classorg.apache.spark.deploy.worker.Worker--webui-
port8081spark://hadoop201:7077
hadoop202:JAVA_H0MEisnotset
hodoop202:fulllogin/opt/module/spark-standalone/logs/spark-otguigu-org.apache.spork.deploy.worker.Worker-l-hadoop202.out
hadoop203:failedtolaunch:nice-n0/opt/module/spark-standalone/bin/spark-classorg.opache.spark.deploy.worker.Worker--webui-
port8081spark://hadoopZ01:7077
hadoop203:JAVA_H0MEisnotset
hadoop203:fulllogin/opt/module/5park-standalone/logs/sp"k-Qtguigu-org.apache.spark.dep'loy.worker.Worker-l-hadoop203.out
5PARK_H0ME=
SPARK_CONF_DIR-
PYTHONPATH=
PYTHONPATH-
PYSPARK_PYTHONPATH_SET-
JAVA_HOME=/opt/module/jdkl..0.172
步驟6:在網(wǎng)頁中查看Spark集群情況
地址:http://hadoop201:8080
SparkMasteratspark://hadoop201:7077
URL:apartc/A?tfoop201:7077
RESTURL:SpvfcV/hadoop201:8066仁moot)
ANwWoriura:3
CormInUM:6Totti.0Used
Memoryknuse:3.0GBTotal.0.08Uwd
AppKcaUon*:0Running,0Comptotad
Ortvsr*:0Running.0Completed
StatusALIVE
Workers
WoZrldAddr?MStateCoraeMemory
wortur-20180131225504-182.16843201-42496192.188.43^01:42496AUVE2(0Uwd)10240MB(0.0BUaod)
wortiar-20190131226605-02-33340182.168.43202:33340AUVE2(0Used)10240MB(0.0BUsed)
wortar-20190131225505-19216843^03-36531192.168.43^03:36531AUVE2(0Used)10240MB(0.0BUsed)
RunningApplications
UserStets
CompletedApplications
ApplicationIO.NameCorasMemoryp?rNode
2.3.2使用Standalone模式運(yùn)行計(jì)算PI的程序
bin/spark-submit\
--classorg.apache.spark.exampLes.SparkPi\
--masterspark://hadoop201:7077\
--executor-memory1G\
--totaL-executor-cores6\
--executor-cores2\
,/exampLes/jars/spark-exampLes_2.11-2.1.1.jar100
allcompleted,trompool
19/02/0112:08:15INFODAGScheduler:Resultstage0(reduceatSparkPi.scala:38)
finishedin3.590s
19/02/0112:08:15INFODAGScheduler:Job0finished:reduceatSparkPi.scala:38,
took4.442334s
〔Piisrouqhly3,1418383141838313]
19/02/0112:08:15INFOSparkUI:StoppedSparkwebUIat01:40
40
19/02/0112:08:15INFOStandaloneSchedulerBackend:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB32/T 3522.5-2019高速公路服務(wù)規(guī)范第5部分:公共信息服務(wù)
- DB31/T 999.5-2016網(wǎng)上政務(wù)大廳接入技術(shù)規(guī)范第5部分:統(tǒng)一編碼規(guī)則及獲取
- DB31/T 937-2015基于車載的實(shí)時(shí)交通信息應(yīng)用服務(wù)規(guī)范
- DB31/T 857-2014家具經(jīng)營服務(wù)規(guī)范
- DB31/T 1393-2023白玉蘭栽植養(yǎng)護(hù)技術(shù)規(guī)程
- DB31/T 1311-2021數(shù)據(jù)去標(biāo)識化共享指南
- DB31/T 1251-2020社區(qū)公益服務(wù)項(xiàng)目招投標(biāo)指南
- DB31/T 1201-2019老年照護(hù)統(tǒng)一需求評估規(guī)范
- DB31/T 1134-2019建筑消防設(shè)施檢測評定技術(shù)規(guī)程
- DB31/T 1109-2022鄉(xiāng)村振興示范村建設(shè)指南
- 人教版八年級英語下冊Unit 9 Section A單詞詞匯課件
- 國家開放大學(xué)2025年《創(chuàng)業(yè)基礎(chǔ)》形考任務(wù)2答案
- 兒童支氣管哮喘診斷與防治指南(2025)解讀
- 無人機(jī)吊運(yùn)材料的安全管理要求
- API RP 5A3-2023 套管、油管和管線管的螺紋脂推.薦方法
- 感染病例上報(bào)制度與流程
- 民事起訴狀(機(jī)動車交通事故責(zé)任糾紛)
- 黃岡市 2025年春季九年級調(diào)研考試物理試題
- 《重大隱患判定標(biāo)準(zhǔn)解讀》
- 疊杯培訓(xùn)課件
- INS+2024指南更新要點(diǎn)解讀
評論
0/150
提交評論