Spark大數(shù)據(jù)分析 課件 第2章 Spark集群安裝配置_第1頁
Spark大數(shù)據(jù)分析 課件 第2章 Spark集群安裝配置_第2頁
Spark大數(shù)據(jù)分析 課件 第2章 Spark集群安裝配置_第3頁
Spark大數(shù)據(jù)分析 課件 第2章 Spark集群安裝配置_第4頁
Spark大數(shù)據(jù)分析 課件 第2章 Spark集群安裝配置_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

集群環(huán)境準(zhǔn)備目錄/Contents01系統(tǒng)環(huán)境配置02JDK安裝03Hadoop集群部署04ZooKeeper集群部署05Scala安裝系統(tǒng)環(huán)境配置01系統(tǒng)環(huán)境配置1.安裝linux系統(tǒng):Centos關(guān)于系統(tǒng)的安裝這里不做詳細(xì)的介紹,本次安裝的系統(tǒng)為centos7,可以在阿里鏡像鏡像網(wǎng)站(/centos/7/isos/x86_64/)或者官網(wǎng)(/download/)下載鏡像。使用的軟件:VMwareWorkstation系統(tǒng)安裝要求:無桌面版最小化安裝網(wǎng)絡(luò)連接方式:NAT內(nèi)存2G及以上磁盤大小30G及以上CPU1核以上2.網(wǎng)絡(luò)環(huán)境配置在系統(tǒng)安裝完成后需要配置虛擬機(jī)的網(wǎng)卡信息。(1)NAT信息查看①打開VMware②找到菜單欄中的“編輯”,選擇“虛擬網(wǎng)絡(luò)編輯器”③選擇VMnet8,NAT設(shè)置(2)打開虛擬機(jī)命令行界面,修改網(wǎng)卡信息系統(tǒng)環(huán)境配置3.配置防火墻CentOS7默認(rèn)使用的是firewall作為防火墻。firewall操作:#servicefirewalldstatus;#查看防火墻狀態(tài)(disabled表明已經(jīng)禁止開啟啟動enable表示開機(jī)自啟,inactive表示防火墻關(guān)閉狀態(tài)activated(running)表示為開啟狀態(tài))4.主機(jī)名修改vi與vimvi編輯器是所有Unix及Linux系統(tǒng)下標(biāo)準(zhǔn)的編輯器,他就相當(dāng)于windows系統(tǒng)中的記事本一樣,它的強(qiáng)大不遜色于任何最新的文本編輯器。他是我們使用Linux系統(tǒng)不能缺少的工具。由于對Unix及Linux系統(tǒng)的任何版本,vi編輯器是完全相同的,學(xué)會它后,你將在Linux的世界里暢行無阻。vim具有程序編輯的能力,可以以字體顏色辨別語法的正確性,方便程序設(shè)計(jì),因?yàn)槌绦蚝唵?,編輯速度相?dāng)快速。JDK安裝02JDK安裝1.面向?qū)ο缶幊陶Z言——JavaJava是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡單易用兩個(gè)特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?,方便程序員以面向?qū)ο蟮乃季S方式進(jìn)行復(fù)雜的編程。Java具有簡單性、面向?qū)ο?、分布式、健壯性、安全性、平臺獨(dú)立與可移植性、多線程、動態(tài)性等特點(diǎn)。Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。Storm2.JDKJDK(JavaDevelopmentKit)是Java語言的軟件開發(fā)工具包,主要用于移動設(shè)備、嵌入式設(shè)備上的Java應(yīng)用程序。JDK是整個(gè)Java開發(fā)的核心,它包含了Java的運(yùn)行環(huán)境(JVM+Java系統(tǒng)類庫)和Java工具。JDK包含的基本組件包括:javac:編譯器,將源程序轉(zhuǎn)成字節(jié)碼。jar:打包工具,將相關(guān)的類文件打包成一個(gè)文件。javadoc:文檔生成器,從源碼注釋中提取文檔。jdb:debugger,查錯(cuò)工具。java:運(yùn)行編譯后的Java程序(.class后綴的)。appletviewer:小程序?yàn)g覽器,一種執(zhí)行HTML文件上的Java小程序的Java瀏覽器。Javah:產(chǎn)生可以調(diào)用Java過程的C過程,或建立能被Java程序調(diào)用的C過程的頭文件。Javap:Java反匯編器,顯示編譯類文件中的可訪問功能和數(shù)據(jù),同時(shí)顯示字節(jié)代碼含義。Jconsole:Java進(jìn)行系統(tǒng)調(diào)試和監(jiān)控的工具。JDK安裝3.JREJRE(JavaRuntimeEnvironment)Java運(yùn)行環(huán)境,包括兩部分:JavaRuntimeEnvironment和JavaPlug-in。JRE是可以在其上運(yùn)行、測試和傳輸應(yīng)用程序的Java平臺。它包括JVM(Java虛擬機(jī))、Java核心類庫和支持文件。它不包含開發(fā)工具(JDK)——編譯器、調(diào)試器和其它工具。JRE需要輔助軟件(JavaPlug-in)以便在瀏覽器中運(yùn)行applet。JRE可以支撐Java程序的運(yùn)行,包括JVM虛擬機(jī)(java.exe等)和基本的類庫(rt.jar等),JDK可以支持Java程序的開發(fā),包括編譯器(javac.exe)、開發(fā)工具(javadoc.exe、jar.exe、keytool.exe、jconsole.exe)和更多的類庫(如tools.jar)等。Storm4.JDK安裝Hadoop采用的開發(fā)語言是Java,所以搭建Hadoop集群的前提是先安裝JDK。本書選擇的JDK版本是Oracle官方的JDK8,這里使用的是tar.gz安裝包(/technetwork/java/javase/downloads/java-archive-javase8-2177648.html)Hadoop集群部署03Hadoop集群部署Hadoop集群部署1.基礎(chǔ)環(huán)境配置搭建Hadoop集群需要配置以下信息:①配置虛擬機(jī)網(wǎng)絡(luò)(NAT聯(lián)網(wǎng)方式)②網(wǎng)卡信息修改③主機(jī)名修改④主機(jī)名與IP映射⑤關(guān)閉防火墻⑥ssh免密登錄⑦JDK安裝⑧同步集群時(shí)間根據(jù)1.1.1與1.1.2節(jié)中的內(nèi)容完成①②③⑤⑦這五個(gè)操作,在配置完成后開始主機(jī)名與IP映射、ssh免密登錄、同步集群時(shí)間的操作。ZooKeeper集群部署04ZooKeeper集群部署ZooKeeper是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個(gè)開源的實(shí)現(xiàn),是Hadoop和Hbase的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。Flink(1)安裝包下載(2)配置zoo.cfg文件(3)myid文件(4)環(huán)境變量配置(5)安裝包分發(fā)(6)啟動集群(7)驗(yàn)證Scala安裝05Scala安裝spark是處理大數(shù)據(jù)的開源框架,底層是使用scala腳本語言開發(fā),對scala支持最好,同時(shí)支持java、python、r語言等。scala是一種綜合了面向?qū)ο蠛秃瘮?shù)式編程概念的靜態(tài)類型的多范式編程語言。Scala運(yùn)行于Java平臺(Java虛擬機(jī)),并兼容現(xiàn)有的Java程序。本節(jié)主要講解Linux中Scala的安裝與配置。Flink(1)安裝包下載解壓(2)環(huán)境變量配置(3)安裝文件分發(fā)(4)驗(yàn)證感謝大家的聆聽Spark環(huán)境搭建目錄/Contents01

Standalone模式部署02JDK安裝03Hadoop集群部署04

ZooKeeper集群部署05Scala安裝

Standalone模式部署01

Standalone模式部署即獨(dú)立模式,自帶完整的服務(wù),可單獨(dú)部署到一個(gè)集群中,無需依賴任何其他資源管理系統(tǒng)。從一定程度上說,該模式是其他兩種的基礎(chǔ)。借鑒Spark開發(fā)模式,我們可以得到一種開發(fā)新型計(jì)算框架的一般思路:先設(shè)計(jì)出它的standalone模式,為了快速開發(fā),起初不需要考慮服務(wù)(比如master/slave)的容錯(cuò)性,之后再開發(fā)相應(yīng)的wrapper,將stanlone模式下的服務(wù)原封不動的部署到資源管理系統(tǒng)yarn或者mesos上,由資源管理系統(tǒng)負(fù)責(zé)服務(wù)本身的容錯(cuò)。目前Spark在standalone模式下是沒有任何單點(diǎn)故障問題的,這是借助zookeeper實(shí)現(xiàn)的,思想類似于HBasemaster單點(diǎn)故障解決方案。將Sparkstandalone與MapReduce比較,會發(fā)現(xiàn)它們兩個(gè)在架構(gòu)上是完全一致的:

Standalone模式部署1.下載安裝spark2.配置spark在spark官網(wǎng)下載tar.gz安裝包,本節(jié)使用的是spark2.3.2。在下載安裝包時(shí)需要對應(yīng)好Hadoop的版本,本書使用的是Hadoop2.7.4安裝包解壓完成后需要進(jìn)行相關(guān)的配置,可以在一臺機(jī)器上配置好之后使用scp命令copy到其他機(jī)器上,在配置之前需要將四臺虛擬機(jī)關(guān)機(jī)后做一個(gè)快照,方便后面兩種模式的部署。SparkonYARN模式部署02SparkonYARN模式部署這是一種很有前景的部署模式。但限于YARN自身的發(fā)展,目前僅支持粗粒度模式(Coarse-grainedMode)。這是由于YARN上的Container資源是不可以動態(tài)伸縮的,一旦Container啟動之后,可使用的資源不能再發(fā)生變化,不過這個(gè)已經(jīng)在YARN計(jì)劃中了。sparkonyarn支持兩種模式:1)yarn-cluster:適用于生產(chǎn)環(huán)境;2)yarn-client:適用于交互、調(diào)試,希望立即看到app的輸出SparkonYARN模式部署安裝包下載解壓2.配置spark-env.sh3.重命名slaves.template文件4.配置slaves文件5.環(huán)境變量配置6.文件分發(fā)7.啟動集群8.驗(yàn)證9.運(yùn)行實(shí)例10.任務(wù)監(jiān)控SparkHA集群部署03SparkHA集群部署SparkStandalone集群是Master-Slaves架構(gòu)的集群模式,和大部分的Master-Slaves結(jié)構(gòu)集群一樣,存在著Master單點(diǎn)故障的問題。如何解決這個(gè)單點(diǎn)故障的問題,Spark提供了兩種方案:(1)基于文件系統(tǒng)的單點(diǎn)恢復(fù)(Single-NodeRecoverywithLocalFileSystem)。主要用于開發(fā)或測試環(huán)境。當(dāng)spark提供目錄保存sparkApplication和worker的注冊信息,并將他們的恢復(fù)狀態(tài)寫入該目錄中,這時(shí),一旦Master發(fā)生故障,就可以通過重新啟動Master進(jìn)程(sbin/start-master.sh),恢復(fù)已運(yùn)行的sparkApplication和worker的注冊信息。(2)基于zookeeper的StandbyMasters(StandbyMasterswithZooKeeper)。用于生產(chǎn)模式。其基本原理是通過zookeeper來選舉一個(gè)Master,其他的Master處于Standby狀態(tài)。將spark集群連接到同一個(gè)ZooKeeper實(shí)例并啟動多個(gè)Master,利用zookeeper提供的選舉和狀態(tài)保存功能,可以使一個(gè)Master被選舉成活著的master,而其他Master處于Standby狀態(tài)。如果現(xiàn)任Master死去,另一個(gè)Master會通過選舉產(chǎn)生,并恢復(fù)到舊的Master狀態(tài),然后恢復(fù)調(diào)度。整個(gè)恢復(fù)過程可能要1-2分鐘。SparkHA集群部署下載解壓安裝包2.配置spark-env.sh3.重命名slaves.template文件4.配置slaves文件5.環(huán)境變量配置6.文件分發(fā)7.啟動集群8.驗(yàn)證感謝大家的聆聽Spark運(yùn)行架構(gòu)與原理目錄/Contents01基本概念02Spark集群運(yùn)行架構(gòu)03Spark運(yùn)行基本流程基本概念01基本概念Spark運(yùn)行架構(gòu)包括集群資源管理器(ClusterManager)、運(yùn)行作業(yè)任務(wù)的工作節(jié)點(diǎn)(WorkerNode)、每個(gè)應(yīng)用的任務(wù)控制節(jié)點(diǎn)(Driver)和每個(gè)工作節(jié)點(diǎn)上負(fù)責(zé)具體任務(wù)的執(zhí)行進(jìn)程(Executor)。其中,集群資源管理器可以是Spark自帶的資源管理器,也可以是YARN或Mesos等資源管理框架。與HadoopMapReduce計(jì)算框架相比,Spark所采用的Executor有兩個(gè)優(yōu)點(diǎn):一是利用多線程來執(zhí)行具體的任務(wù)(HadoopMapReduce采用的是進(jìn)程模型),減少任務(wù)的啟動開銷;二是Executor中有一個(gè)BlockManager存儲模塊,會將內(nèi)存和磁盤共同作為存儲設(shè)備,當(dāng)需要多輪迭代計(jì)算時(shí),可以將中間結(jié)果存儲到這個(gè)存儲模塊里,下次需要時(shí),就可以直接讀該存儲模塊里的數(shù)據(jù),而不需要讀寫到HDFS等文件系統(tǒng)里,因而有效減少了IO開銷;或者在交互式查詢場景下,預(yù)先將表緩存到該存儲系統(tǒng)上,從而可以提高讀寫IO性能。

Standalone模式部署ApplicationDriver用戶編寫的Spark應(yīng)用程序,包含了DriverProgram以及在集群上運(yùn)行的程序代碼,物理機(jī)器上涉及了driver,master,worker三個(gè)節(jié)點(diǎn)。

Spark中的Driver即運(yùn)行Application的main函數(shù)并創(chuàng)建SparkContext,創(chuàng)建SparkContext的目的是為了準(zhǔn)備Spark應(yīng)用程序的運(yùn)行環(huán)境,在Spark中由SparkContext負(fù)責(zé)與ClusterManager通信,進(jìn)行資源申請、任務(wù)的分配和監(jiān)控等,當(dāng)Executor部分運(yùn)行完畢后,Driver同時(shí)負(fù)責(zé)將SparkContext關(guān)閉。

Standalone模式部署WorkerExecutor集群中任何一個(gè)可以運(yùn)行spark應(yīng)用代碼的節(jié)點(diǎn)。Worker就是物理節(jié)點(diǎn),可以在上面啟動Executor進(jìn)程。在每個(gè)Worker上為某應(yī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的容器。RDDRDD(ResilientDistributedDataset)叫做彈性分布式數(shù)據(jù)集,是Spark中最基本的數(shù)據(jù)抽象,它代表一個(gè)不可變、可分區(qū)、里面的元素可并行計(jì)算的集合。

Standalone模式部署TaskJob被送到某個(gè)Executor上的工作單元,但hadoopMR中的MapTask和ReduceTask概念一樣,是運(yùn)行Application的基本單位,多個(gè)Task組成一個(gè)Stage,而Task的調(diào)度和管理等是由TaskScheduler負(fù)責(zé)。包含多個(gè)Task組成的并行計(jì)算,往往由SparkAction觸發(fā)生成,一個(gè)Application中往往會產(chǎn)生多個(gè)Job。Stage每個(gè)Job會被拆分成多組Task,作為一個(gè)TaskSet,其名稱為Stage,Stage的劃分和調(diào)度是有DAGScheduler來負(fù)責(zé)的,Stage有非最終的Stage(ShuffleMapStage)和最終的Stage(ResultStage)兩種,Stage的邊界就是發(fā)生shuffle的地方。Spark集群運(yùn)行架構(gòu)02Spark集群運(yùn)行架構(gòu)Spark是基于內(nèi)存計(jì)算的大數(shù)據(jù)并行計(jì)算框架,比MapReduce計(jì)算框架具有更高的實(shí)時(shí)性,同時(shí)具有高效容錯(cuò)性和可伸縮性,在學(xué)習(xí)Spark操作之前,首先介紹Sprk運(yùn)行架構(gòu)。Spark運(yùn)行基本流程03Spark運(yùn)行基本流程Spark運(yùn)行架構(gòu)主要由SparkContext、ClusterManagaer和Worker組成,其中ClusterManager負(fù)責(zé)整個(gè)集群的同一資源管理,Worker節(jié)點(diǎn)中的Executor是應(yīng)用執(zhí)行的主要進(jìn)程,內(nèi)部含有多個(gè)Task線程以及內(nèi)存空間。Spark運(yùn)行基本流程1)構(gòu)建SparkApplication的運(yùn)行環(huán)境(啟動SparkContext),SparkContext向ClusterManager注冊,并申請運(yùn)行Executor資源。2)ClusterManager為Executor分配資源并啟動Executor進(jìn)程,Executor運(yùn)行情況將隨著“心跳”發(fā)送到ClusterManager上。3)SparkContext構(gòu)建DAG圖,將DAG圖分解成多個(gè)Stage,并把每個(gè)Stage的TaskSet(任務(wù)集)發(fā)送給TaskScheduler(任務(wù)調(diào)度器)。Executor向SparkContext申請Task,TaskScheduler將Task發(fā)放給Executor,同時(shí),SparkContext將應(yīng)用程序代碼發(fā)放給Executor。4)Task在Executor上運(yùn)行,把執(zhí)行結(jié)果反饋給TaskScheduler,然后再反饋給DAGScheduler。運(yùn)行完畢后寫入數(shù)據(jù),SparkContext向ClusterManager注銷并釋放所有資源。感

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論