《Spark編程基礎(chǔ)(Scala版第2版)》 課件 第4章 Spark環(huán)境搭建和使用方法-Spark編程基礎(chǔ)_第1頁(yè)
《Spark編程基礎(chǔ)(Scala版第2版)》 課件 第4章 Spark環(huán)境搭建和使用方法-Spark編程基礎(chǔ)_第2頁(yè)
《Spark編程基礎(chǔ)(Scala版第2版)》 課件 第4章 Spark環(huán)境搭建和使用方法-Spark編程基礎(chǔ)_第3頁(yè)
《Spark編程基礎(chǔ)(Scala版第2版)》 課件 第4章 Spark環(huán)境搭建和使用方法-Spark編程基礎(chǔ)_第4頁(yè)
《Spark編程基礎(chǔ)(Scala版第2版)》 課件 第4章 Spark環(huán)境搭建和使用方法-Spark編程基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Spark環(huán)境搭建和使用方法第4章目

錄01安裝Spark02在spark-shell中運(yùn)行代碼03開發(fā)Spark獨(dú)立應(yīng)用程序04Spark集群環(huán)境搭建05在集群上運(yùn)行Spark應(yīng)用程序安裝

Spark4.1安裝Spark

基礎(chǔ)環(huán)境

下載安裝文件

配置相關(guān)文件

Spark和Hadoop的交互安裝Spark4.1.1基礎(chǔ)環(huán)境4.1.1基礎(chǔ)環(huán)境Hadoop安裝教程_單機(jī)/偽分布式配置_Hadoop3.1.3/Ubuntu16.04/blog/2441-2/4.1.1基礎(chǔ)環(huán)境Spark安裝包下載地址:解壓安裝包spark-3.2.0-bin-without-hadoop.tgz至路徑/usr/local$sudotar-zxf~/下載/spark-3.2.0-bin-without-hadoop.tgz-C/usr/local/$cd/usr/local$sudomv./spark-3.2.0-bin-without-hadoop/./spark#更改文件夾名$sudochown-Rhadoop./spark#此處的hadoop為系統(tǒng)用戶名4.1.2下載安裝文件4.1.3配置相關(guān)文件配置Spark的classpath$cd/usr/local/spark$cp./conf/spark-env.sh.template./conf/spark-env.sh#拷貝配置文件編輯該配置文件,在文件最后面加上如下一行內(nèi)容exportSPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoopclasspath)保存配置文件后,就可以啟動(dòng)、運(yùn)行Spark了若需要使用HDFS中的文件,則在使用Spark前需要啟動(dòng)Hadoop

通過運(yùn)行Spark自帶的實(shí)例SparkPi,可以驗(yàn)證Spark是否安裝成功$cd/usr/local/spark$bin/run-exampleSparkPi可以通過grep命令進(jìn)行過濾,快速找到我們想要的執(zhí)行結(jié)果$bin/run-exampleSparkPi2>&1|grep"Piisroughly"過濾后的運(yùn)行結(jié)果中包含了π的近似值,具體如下Piisroughly3.1456957284786424.1.3配置相關(guān)文件4.1.4Spark和Hadoop的交互單機(jī)模式HDFSHBaseSpark負(fù)責(zé)計(jì)算負(fù)責(zé)存儲(chǔ)輸入如下命令啟動(dòng)HDFS$cd/usr/local/hadoop$./sbin/start-dfs.sh使用結(jié)束以后,可以使用如下命令關(guān)閉HDFS$./sbin/stop-dfs.sh4.1.4Spark和Hadoop的交互4.1.4Spark和Hadoop的交互Local模式Standalone模式Y(jié)ARN模式Mesos模式Spark部署模式4.1.4Spark和Hadoop的交互Local模式Mesos模式Y(jié)ARN模式Standalone模式單機(jī)模式Spark部署模式4.1.4Spark和Hadoop的交互Spark部署模式集群模式Local模式Mesos模式Y(jié)ARN模式Standalone模式4.1.4Spark和Hadoop的交互使用Spark自帶的集群資源管理器Standalone模式效率比較低!4.1.4Spark和Hadoop的交互0102030405搭建在Kubernetes集群上使用Mesos作為集群管理器使用YARN作為集群管理器使用Spark自帶的集群管理器單機(jī)模式Kubernetes模式Mesos模式Y(jié)ARN模式Standalone模式Local模式4.1.4Spark和Hadoop的交互單機(jī)模式HDFSHBaseSpark負(fù)責(zé)計(jì)算負(fù)責(zé)存儲(chǔ)在spark-shell中運(yùn)行代碼4.2

在spark-shell中運(yùn)行代碼交互式執(zhí)行環(huán)境spark-shell提供Spark開發(fā)效率高4.2

在spark-shell中運(yùn)行代碼交互式執(zhí)行環(huán)境spark-shell分析數(shù)據(jù)一條語(yǔ)句執(zhí)行4.2

在spark-shell中運(yùn)行代碼spark-shell交互式執(zhí)行環(huán)境交互式環(huán)境交互式環(huán)境SparkShell本身就是一個(gè)Driver,里面已經(jīng)包含了main方法4.2.1spark-shell命令./bin/spark-shell--master<master-url>*local

使用一個(gè)Worker線程本地化運(yùn)行SPARK(完全不并行)*local[*]

使用邏輯CPU個(gè)數(shù)數(shù)量的線程來本地化運(yùn)行Spark*local[K]

使用K個(gè)Worker線程本地化運(yùn)行Spark(理想情況下,K應(yīng)該根據(jù)運(yùn)行機(jī)器的CPU核數(shù)設(shè)定)*local[*,F]

使用與邏輯CPU個(gè)數(shù)相同數(shù)量的線程來本地化運(yùn)行Spark,并且允許任務(wù)最大失敗次數(shù)為F*local[K,F]

使用K個(gè)Worker線程本地化運(yùn)行Spark,并且允許任務(wù)最大失敗次數(shù)為F*local-cluster[N,C,M]

local-cluster模式只用于單元測(cè)試。它會(huì)在單個(gè)JVM中模擬出一個(gè)具有N個(gè)Worker的集群,每個(gè)Worker具有C個(gè)核心(Core)和MMB的內(nèi)存spark-shell命令及其常用的參數(shù)4.2.1spark-shell命令spark://:7077默認(rèn)端口7077spark://HOST:PORTspark://localhost:7077獨(dú)立集群模式4.2.1spark-shell命令YARN的兩種模式02yarn-cluster01yarn-client./bin/spark-shell--masteryarn-client./bin/spark-shell--masteryarn-cluster4.2.1spark-shell命令集群客戶端電腦4.2.1spark-shell命令任務(wù)控制節(jié)點(diǎn)DriverProgramSparkContext客戶端電腦集群資源管理器客戶端是不能關(guān)掉ClusterManageryarn-client4.2.1spark-shell命令客戶端電腦發(fā)起應(yīng)用程序集群yarn-cluster4.2.1spark-shell命令集群4.2.1spark-shell命令yarn-cluster客戶端集群客戶端不可關(guān)客戶端可關(guān)調(diào)試正在使用yarn-client4.2.1spark-shell命令mesos://HOST:PORTMesos集群:默認(rèn)接口是5050./bin/spark-shell--mastermesos://HOST:PORT4.2.1spark-shell命令k8s://HOST:PORTKubernetes集群deploy-mode的值為client時(shí)以客戶端模式連接Kubernetes集群deploy-mode的值為cluster時(shí)以集群模式連接Kubernetes集群4.2.1spark-shell命令在Spark中采用本地模式啟動(dòng)SparkShell的命令主要包含以下參數(shù)表示當(dāng)前的SparkShell要連接到哪個(gè)master,如果是local[*],就是使用本地模式啟動(dòng)spark-shell,星號(hào)表示需要使用幾個(gè)CPU核心(core)這個(gè)參數(shù)用于把相關(guān)的JAR包添加到CLASSPATH中;如果有多個(gè)jar包,可以使用逗號(hào)分隔符連接它們-master-jars4.2.1spark-shell命令比如,要采用本地模式,在4個(gè)CPU核心上運(yùn)行spark-shell$cd/usr/local/spark$./bin/spark-shell--masterlocal[4]可以在CLASSPATH中添加code.jar,命令如下$cd/usr/local/spark$./bin/spark-shell--masterlocal[4]--jarscode.jar可以執(zhí)行“spark-shell--help”命令,獲取完整的選項(xiàng)列表$cd/usr/local/spark$./bin/spark-shell--help4.2.2啟動(dòng)spark-shell執(zhí)行如下命令啟動(dòng)SparkShell(默認(rèn)是local模式)$./bin/spark-shell啟動(dòng)SparkShell成功后在輸出信息末尾可看到“Scala>”的命令提示符4.2.2啟動(dòng)spark-shell可以在里面輸入scala代碼進(jìn)行調(diào)試可以使用命令“:quit”退出SparkShell可以直接使用“Ctrl+D”組合鍵,退出SparkShell4.2.3SparkUISpark包含一個(gè)圖形用戶界面,可用于以各種粒度(作業(yè)、執(zhí)行階段、任務(wù))檢查或監(jiān)控Spark應(yīng)用。根據(jù)Spark的部署方式,驅(qū)動(dòng)器會(huì)啟動(dòng)基于網(wǎng)頁(yè)的用戶界面,默認(rèn)在端口4040上運(yùn)行開發(fā)

Spark獨(dú)立應(yīng)用程序4.3開發(fā)Spark獨(dú)立應(yīng)用程序安裝編譯打包工具編譯打包通過spark-submit運(yùn)行程序編寫Spark應(yīng)用程序代碼030104024.3.1安裝編譯打包工具安裝sbt下載sbt安裝包sbt-1.3.8.tgz以后,執(zhí)行如下命令$sudomkdir/usr/local/sbt#創(chuàng)建安裝目錄$cd~/Downloads$sudotar-zxvf./sbt-1.3.8.tgz-C/usr/local$cd/usr/local/sbt$sudochown-Rhadoop/usr/local/sbt#此處的hadoop為系統(tǒng)當(dāng)前用戶名$cd/usr/local/sbt$cp./bin/sbt-launch.jar./#把bin目錄下的sbt-launch.jar復(fù)制到sbt安裝目錄下4.3.1安裝編譯打包工具接著在/usr/local/sbt中創(chuàng)建sbt腳本(vim./sbt),添加如下內(nèi)容#!/bin/bashSBT_OPTS="-Xms512M-Xmx1536M-Xss1M-XX:+CMSClassUnloadingEnabled-XX:MaxPermSize=256M"java$SBT_OPTS-jar`dirname$0`/sbt-launch.jar"$@"4.3.1安裝編譯打包工具保存后,為./sbt腳本增加可執(zhí)行權(quán)限檢驗(yàn)sbt是否可用4.3.1安裝編譯打包工具只要能得到如下圖的版本信息就沒問題$./sbtsbtVersionJavaHotSpot(TM)64-BitServerVMwarning:ignoringoptionMaxPermSize=256M;supportwasremovedin8.0[warn]Nosbt.versionsetinproject/perties,basedirectory:/usr/local/sbt[info]Setcurrentprojecttosbt(inbuildfile:/usr/local/sbt/)[info]1.3.84.3.2編寫Spark應(yīng)用程序代碼在終端中執(zhí)行如下命令創(chuàng)建一個(gè)文件夾sparkapp作為應(yīng)用程序根目錄4.3.2編寫Spark應(yīng)用程序代碼在./sparkapp/src/main/scala下建立一個(gè)名為SimpleApp.scala的文件4.3.3編譯打包使用sbt對(duì)Scala程序進(jìn)行編譯打包name:="SimpleProject"version:="1.0"scalaVersion:="2.12.15"libraryDependencies+="org.apache.spark"%%"spark-core"%"3.2.0"請(qǐng)?jiān)?/sparkapp中新建文件

simple.sbt(vim./sparkapp/simple.sbt),添加內(nèi)容如下4.3.3編譯打包Spark和Scala的版本信息可以在啟動(dòng)信息中找到4.3.3編譯打包使用

sbt

對(duì)

Scala程序進(jìn)行編譯打包——關(guān)于百分號(hào)的說明libraryDependencies++=Seq(

"org.json4s"%%"json4s-native"%"3.2.10",

"org.json4s"%%"json4s-jackson"%"3.2.10")中間兩個(gè)百分號(hào)的依賴是不指定版本的,版本由Scala的版本確定中間有一個(gè)百分號(hào)的依賴是指定版本的libraryDependencies+="org.apache.kafka"%"kafka_2.12"%"2.6.0"4.3.3編譯打包為保證sbt能正常運(yùn)行,先執(zhí)行如下命令檢查整個(gè)應(yīng)用程序的文件結(jié)構(gòu)文件結(jié)構(gòu)應(yīng)如下圖所示4.3.3編譯打包接著就可通過如下代碼將整個(gè)應(yīng)用程序打包成JAR(首次運(yùn)行同樣需要下載依賴包)打包成功的話,會(huì)輸出類似如下信息hadoop@dblab:~/sparkapp$/usr/local/sbt/sbtpackageOpenJDK64-BitServerVMwarning:ignoringoptionMaxPermSize=256M;supportwasremovedin8.0[info]SetcurrentprojecttoSimpleProject(inbuildfile:/home/hadoop/sparkapp/)[success]Totaltime:4s,completedJan26,20235:57:56AM生成的jar包的位置為~/sparkapp/target/scala-2.12/simple-project_2.12-1.0.jar$

/usr/local/sbt/sbtpackage4.3.3編譯打包Maven~/sparkapp2~/sparkapp2/src/main/scalaSimpleApp.scala使用Maven對(duì)Scala程序進(jìn)行編譯打包4.3.3編譯打包<project><groupId>.xmu</groupId><artifactId>simple-project</artifactId><modelVersion>4.0.0</modelVersion><name>SimpleProject</name><packaging>jar</packaging><version>1.0</version><repositories><repository><id>jboss</id><name>JBossRepository</name><url>/maven2/</url></repository></repositories><dependencies>

在“~/sparkapp2”目錄中新建文件pom.xml4.3.3編譯打包<dependency><!--Sparkdependency--><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.2.0</version></dependency></dependencies><build><sourceDirectory>src/main/scala</sourceDirectory><plugins><plugin><groupId>org.scala-tools</groupId><artifactId>maven-scala-plugin</artifactId><executions><execution><goals><goal>compile</goal></goals></execution></executions><configuration><scalaVersion>2.12.15</scalaVersion><args><arg>-target:jvm-1.8</arg></args></configuration></plugin></plugins></build></project>4.3.3編譯打包4.3.3編譯打包

在“~/sparkapp2”目錄中新建文件pom.xml<project><groupId>.xmu</groupId><artifactId>simple-project</artifactId><modelVersion>4.0.0</modelVersion><name>SimpleProject</name><packaging>jar</packaging><version>1.0</version><repositories><repository><id>jboss</id><name>JBossRepository</name><url>/maven2/</url></repository></repositories><dependencies><dependency><!--Sparkdependency--><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.2.0</version></dependency></dependencies>4.3.3編譯打包

在“~/sparkapp2”目錄中新建文件pom.xml<build><sourceDirectory>src/main/scala</sourceDirectory><plugins><plugin><groupId>org.scala-tools</groupId><artifactId>maven-scala-plugin</artifactId><executions><execution><goals><goal>compile</goal></goals></execution></executions>4.3.3編譯打包

在“~/sparkapp2”目錄中新建文件pom.xml<configuration><scalaVersion>2.12.15</scalaVersion><args><arg>-target:jvm-1.8</arg></args></configuration> </plugin></plugins></build></project>4.3.3編譯打包可以通過如下代碼將整個(gè)應(yīng)用程序打包成JAR包$cd~/sparkapp2#一定把這個(gè)目錄設(shè)置為當(dāng)前目錄$/usr/local/maven/bin/mvnpackage如果屏幕返回如下信息,則說明生成JAR包成功[INFO]Buildingjar:/home/hadoop/sparkapp2/target/simple-project-1.0.jar[INFO]------------------------------------------------------------------------[INFO]BUILDSUCCESS[INFO]------------------------------------------------------------------------[INFO]Totaltime:

02:02min[INFO]Finishedat:2023-01-26T07:34:02-08:00[INFO]------------------------------------------------------------------------4.3.4通過spark-submit運(yùn)行程序可以通過spark-submit提交應(yīng)用程序,該命令的格式如下./bin/spark-submit--class<main-class>//需要運(yùn)行的程序的主類,應(yīng)用程序的入口點(diǎn)--master<master-url>//MasterURL,下面會(huì)有具體解釋--deploy-mode<deploy-mode>//部署模式...#otheroptions//其他參數(shù)<application-jar>//應(yīng)用程序JAR包[application-arguments]//傳遞給主類的主方法的參數(shù)4.3.4通過spark-submit運(yùn)行程序?qū)τ谥暗玫降膉ar包,就可以通過spark-submit提交到Spark中運(yùn)行了$/usr/local/spark/bin/spark-submit--class"SimpleApp"~/sparkapp/target/scala-2.12/simple-project_2.12-1.0.jar#上面命令執(zhí)行后會(huì)輸出太多信息,可以不使用上面命令,而使用下面命令查看想要的結(jié)果$/usr/local/spark/bin/spark-submit--class"SimpleApp"~/sparkapp/target/scala-2.12/simple-project_2.12-1.0.jar2>&1|grep"Lineswitha:"最終得到的結(jié)果如下

Lineswitha:65,Lineswithb:33Spark集群環(huán)境搭建4.4Spark集群環(huán)境搭建集群概況搭建Hadoop集群環(huán)境安裝Spark配置環(huán)境變量Spark配置啟動(dòng)Spark集群關(guān)閉Spark集群4.4.1集群概況構(gòu)建局域網(wǎng)4.4.1集群概況WorkerWorkerMaster4.4.2準(zhǔn)備工作:搭建Hadoop集群環(huán)境《Hadoop3.1.3分布式集群環(huán)境搭建》/blog/2775-2/4.4.2準(zhǔn)備工作:搭建Hadoop集群環(huán)境4.4.3安裝Spark在Master節(jié)點(diǎn)上,訪問Spark官網(wǎng)下載Spark安裝包sudotar-zxf~/下載/spark-3.2.0-bin-without-hadoop.tgz-C/usr/local/cd/usr/localsudomv./spark-3.2.0-bin-without-hadoop/./sparksudochown-Rhadoop./spark4.4.4配置環(huán)境變量在.bashrc添加如下配置$vim~/.bashrc在Master節(jié)點(diǎn)主機(jī)的終端中執(zhí)行如下命令exportSPARK_HOME=/usr/local/sparkexportPATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin$source~/.bashrc運(yùn)行source命令使得配置立即生效4.4.5Spark配置workers文件設(shè)置Worker節(jié)點(diǎn),編輯workers內(nèi)容,把默認(rèn)內(nèi)容localhost替換如下$cd/usr/local/spark/$cp./conf/workers.template./conf/workers(1)配置workers文件—將workers.template拷貝到workershadoop02hadoop03

編輯spark-env.sh,添加如下內(nèi)容$cp./conf/spark-env.sh.template./conf/spark-env.sh

(2)配置spark-env.sh文件—將spark-env.sh.template拷貝到spark-env.shexportSPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoopclasspath)exportHADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoopexportSPARK_MASTER_IP=294.4.5Spark配置4.4.5Spark配置在hadoop02,hadoop03節(jié)點(diǎn)上分別執(zhí)行下面同樣的操作cd/usr/local/tar-zcf~/spark.master.tar.gz./sparkcd~scp./spark.master.tar.gzhadoop02:/home/hadoopscp./spark.master.tar.gzhadoop03:/home/hadoop將Master主機(jī)上的/usr/local/spark文件夾復(fù)制到各節(jié)點(diǎn),執(zhí)行如下命令sudorm-rf/usr/local/spark/sudotar-zxf~/spark.master.tar.gz-C/usr/localsudochown-Rhadoop/usr/local/spark

4.4.6啟動(dòng)Spark集群$cd/usr/local/hadoop/$sbin/start-all.sh(1)首先啟動(dòng)Hadoop集群。在Master節(jié)點(diǎn)主機(jī)上運(yùn)行如下命令$cd/usr/local/spark/$sbin/start-master.sh$sbin/start-workers.sh(2)啟動(dòng)Master節(jié)點(diǎn)—在Master節(jié)點(diǎn)主機(jī)上運(yùn)行如下命令(3)啟動(dòng)所有Worker節(jié)點(diǎn)—在Master節(jié)點(diǎn)主機(jī)上運(yùn)行如下命令(4)在瀏覽器上查看Spark獨(dú)立集群管理器的集群信息4.4.6啟動(dòng)Spark集群4.4.7關(guān)閉Spark集群$s

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論