第1章 Spark概述電子課件_第1頁
第1章 Spark概述電子課件_第2頁
第1章 Spark概述電子課件_第3頁
第1章 Spark概述電子課件_第4頁
第1章 Spark概述電子課件_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

Spark概述大數(shù)據(jù)技術及人工智能的蓬勃發(fā)展,促進了我國經(jīng)濟更快更好地進入高質(zhì)量發(fā)展階段。基于開源技術的Hadoop分布式框架在行業(yè)中的應用十分廣泛,但是Hadoop本身還存在諸多缺陷,主要的缺陷是Hadoop的MapReduce分布式計算框架在計算時延遲過高,無法滿足實時、快速計算的需求。Spark繼承了MapReduce分布式計算的優(yōu)點并改進了MapReduce的明顯缺陷。與MapReduce不同的是,Spark的中間輸出結果可以保存在內(nèi)存中,從而大大減少了讀寫Hadoop分布式文件系統(tǒng)(HadoopDistributedFileSystem,HDFS)的次數(shù),因此Spark能更好地適用于數(shù)據(jù)挖掘與機器學習中迭代次數(shù)較多的算法。本章的任務如下。介紹Spark的發(fā)展歷史、特點、生態(tài)圈及應用場景,詳細介紹3種不同模式的Spark環(huán)境搭建過程,簡要介紹Spark的運行架構與原理。任務背景1搭建Spark集群目錄認識Spark2了解Spark運行架構與原理3學習Spark編程之前,首先應該對Spark的理論知識有一定的了解,本節(jié)的任務如下。了解Spark的發(fā)展歷史、特點。認識Spark的生態(tài)圈。了解Spark的應用場景。任務描述了解Spark的發(fā)展歷史一般情況下,對于迭代次數(shù)較多的應用程序,Spark程序在內(nèi)存中的運行速度是HadoopMapReduce運行速度的100多倍,在磁盤上的運行速度是HadoopMapReduce運行速度的10多倍。了解Spark的特點1.快速了解Spark的特點1.快速Spark支持使用Scala、Python、Java及R語言快速編寫應用。同時Spark提供超過80個高階算子,使得編寫并行應用程序變得容易,并且可以在Scala、Python或R的交互模式下使用Spark。了解Spark的特點2.易用性Spark可以與SQL、Streaming及復雜的分析良好結合。Spark還有一系列的高級工具,包括SparkSQL、MLlib(機器學習庫)、GraphX(圖計算)和SparkStreaming(流計算),并且支持在一個應用中同時使用這些組件。了解Spark的特點3.通用性用戶可以使用Spark的獨立集群模式運行Spark,也可以在EC2(亞馬遜彈性計算云)、HadoopYARN或者ApacheMesos上運行Spark。并且可以從HDFS、Cassandra、HBase、Hive、Tachyon和任何分布式文件系統(tǒng)讀取數(shù)據(jù)。了解Spark的特點4.隨處運行了解Spark的特點sc.textFile("/user/root/a.txt").flatMap(_.split("")).map((_,1)).reduceByKey(_+_).saveAsTextFile("/user/root/output")5.代碼簡潔認識Spark的生態(tài)圈認識Spark的生態(tài)圈SparkCoreSpark的核心,提供底層框架及核心支持。BlinkDB一個用于在海量數(shù)據(jù)上進行交互式SQL查詢的大規(guī)模并行查詢引擎,允許用戶通過權衡數(shù)據(jù)精度縮短查詢響應時間,數(shù)據(jù)的精度將被控制在允許的誤差范圍內(nèi)。SparkSQL可以執(zhí)行SQL查詢,支持基本的SQL語法和HiveQL語法,可讀取的數(shù)據(jù)源包括Hive、HDFS、關系數(shù)據(jù)庫(如MySQL)等。認識Spark的生態(tài)圈Spark

Streaming可以進行實時數(shù)據(jù)流式計算。輸入流式數(shù)據(jù)輸入小段數(shù)據(jù)處理后的小段數(shù)據(jù)SparkStreamingSparkEngine認識Spark的生態(tài)圈MLBase是Spark生態(tài)圈的一部分,專注于機器學習領域,學習門檻較低。MLBase由4部分組成:MLlib、MLI、MLOptimizer和MLRuntime。MLlib部分算法如下。SparkGraphX圖計算的應用在很多情況下處理的數(shù)據(jù)量都是很龐大的。如果用戶需要自行編寫相關的圖計算算法,并且在集群中應用,難度是非常大的。而使用GraphX即可解決這個問題,因為它內(nèi)置了許多與圖相關的算法,如在移動社交關系分析中可使用圖計算相關算法進行處理和分析。SparkRAMPLab發(fā)布的一個R語言開發(fā)包,使得R語言編寫的程序不只可以在單機運行,也可以作為Spark的作業(yè)運行在集群上,極大地提升了R語言的數(shù)據(jù)處理能力。認識Spark的

生態(tài)圈

廣點通是最早使用Spark的應用之一。騰訊大數(shù)據(jù)精準推薦借助Spark快速迭代的優(yōu)勢,圍繞“數(shù)據(jù)+算法+系統(tǒng)”這套技術方案,實現(xiàn)了在“數(shù)據(jù)實時采集、算法實時訓練、系統(tǒng)實時預測”的全流程實時并行高維算法,最終成功應用于廣點通pCTR投放系統(tǒng)上,支持每天上百億的請求量。了解Spark的應用場景騰訊廣告Yahoo將Spark用在AudienceExpansion中。AudienceExpansion是廣告中尋找目標用戶的一種方法,首先廣告者提供一些觀看了廣告并且購買產(chǎn)品的樣本客戶,據(jù)此進行學習,尋找更多可能轉(zhuǎn)化的用戶,對他們定向廣告。Yahoo采用的算法是LogisticRegression。同時由于某些SQL負載需要更高的服務質(zhì)量,又加入了專門跑Shark的大內(nèi)存集群,用于取代商業(yè)BI/OLAP工具,承擔報表/儀表盤和交互式/即席查詢,同時與桌面BI工具對接。了解Spark的應用場景Yahoo

淘寶技術團隊使用了Spark來解決多次迭代的機器學習算法、高計算復雜度的算法等,將Spark運用于淘寶的推薦相關算法上,同時還利用GraphX解決了許多生產(chǎn)問題,包括以下計算場景:基于度分布的中樞節(jié)點發(fā)現(xiàn)、基于最大連通圖的社區(qū)發(fā)現(xiàn)、基于三角形計數(shù)的關系衡量、基于隨機游走的用戶屬性傳播等。了解Spark的應用場景淘寶

目前Spark已經(jīng)廣泛使用在優(yōu)酷土豆的視頻推薦,廣告業(yè)務等方面,相比Hadoop,Spark交互查詢響應快,性能比Hadoop提高若干倍。一方面,使用Spark模擬廣告投放的計算效率高、延遲?。ㄍ琀adoop比延遲至少降低一個數(shù)量級)。另一方面,優(yōu)酷土豆的視頻推薦往往涉及機器學習及圖計算,而使用Spark解決機器學習、圖計算等迭代計算能夠大大減少網(wǎng)絡傳輸、數(shù)據(jù)落地等的次數(shù),極大地提高了計算性能。了解Spark的應用場景優(yōu)酷土豆1搭建Spark集群目錄認識Spark2了解Spark運行架構與原理3Spark集群的環(huán)境可分為單機版環(huán)境、單機偽分布式環(huán)境和完全分布式環(huán)境。本節(jié)的任務如下。學習如何搭建不同模式的Spark集群。查看Spark的服務監(jiān)控。任務描述搭建Spark集群軟件環(huán)境軟

件版

本安

包VMware15VMware-workstation-full-15.5.6-16341506.exeSSH連接工具5Xme5.exeLinuxOSCentOS7.8CentOS-7-x86_64-DVD-2003.isoJDK1.8+jdk-8u281-linux-x64.rpmHadoop3.1.4hadoop-3.1.4.tar.gzHive3.1.2apache-hive-3.1.2-bin.tar.gzSpark3.2.1spark-3.2.1-bin-hadoop2.7.tgzIntelliJIDEA3.6ideaIC-2018.3.6.exe下載Spark安裝包到Windows本地。將Spark安裝包上傳到Linux的/opt目錄下。將Spark安裝包解壓到/usr/local目錄下。進入到Spark安裝包的bin目錄下,使用SparkPi來計算Pi的值,其中參數(shù)2是指兩個并行度,運行結果如下。搭建單機版集群Spark單機偽分布式是在一臺機器上既有Master,又有Worker進程。搭建Spark單機偽分布式環(huán)境可在Hadoop偽分布式的基礎上進行搭建。搭建Spark單機偽分布式集群的步驟如下。將Spark安裝包解壓到/usr/local目錄下。進入到Spark安裝包的conf目錄下,將spark-env.sh.template復制為spark-env.sh。打開spark-env.sh文件,在文件末尾添加如下所示的內(nèi)容。目錄切換到sbin目錄下啟動集群。jps查看進程。使用計算SparkPi來計算Pi的值。搭建單機偽分布式集群搭建完全分布式集群集群的拓撲圖MasterSlave1Slave3搭建完全分布式集群搭建Spark完全分布式集群的步驟如下。將Spark安裝包解壓至/usr/local目錄下。切換至Spark安裝目錄的/conf目錄下。配置文件。在主節(jié)點(master節(jié)點)中,將配置好的Spark安裝目錄遠程復制至子節(jié)點(slave1、slave2節(jié)點)的/usr/local目錄下。啟動Hadoop集群,并創(chuàng)建/spark-logs目錄。jps查看進程。切換至Spark安裝目錄的/sbin目錄下,啟動Spark集群。Slave3Spark配置文件搭建完全分布式集群可執(zhí)行命令啟動關閉集群命令配置文件日志JAR文件搭建完全分布式集群配置文件解讀Spark主節(jié)點的IPSpark主節(jié)點的端口號設置每個節(jié)點能給予executors的所有內(nèi)存設置每臺機器所用的核數(shù)每個Executor的內(nèi)存每個Executor的核數(shù)每個節(jié)點的實例(設置每個節(jié)點的worker進程)spark-env.shworkerSpark安裝配置配置文件解讀每行代表一個子節(jié)點的主機名搭建完全分布式集群spark-defaults.conf配置文件解讀Spark主節(jié)點所在機器及端口,spark://默認寫法是否打開任務日志功能,默認為false,即不打開任務日志默認存放位置,配置為一個HDFS路徑即可存放歷史應用日志文件的目錄啟動Sparkcd/usr/local/spark-3.2.1-bin-hadoop2.7/sbin/start-all.shsbin/start-history-server.sh關閉Sparkcd/usr/local/spark-3.2.1-bin-hadoop2.7/sbin/stop-all.shsbin/stop-history-server.sh搭建完全分布式集群啟動關閉Spark搭建完全分布式集群Spark監(jiān)控——http://master:8080Spark監(jiān)控——http://master:18080搭建完全分布式集群1搭建Spark集群目錄認識Spark2了解Spark運行架構與原理3Spark集群為用戶學習Spark編程提供Spark程序的運行環(huán)境。但學習Spark編程前,還需要理解Spark的運行架構及原理。本節(jié)的任務如下。了解Spark的架構。了解Spark作業(yè)的運行流程。了解Spark的核心數(shù)據(jù)集RDD。任務描述了解Spark架構客戶端用戶提交作業(yè)的客戶端。Driver運行Application的main()函數(shù)并創(chuàng)建SparkContext。SparkContext整個應用的上下文,控制應用的生命周期。了解Spark架構基本組件Cluster

Manager資源管理器,即在集群上獲取資源的外部服務,目前主要有Standalone(Spark原生的資源管理器)和YARN(Hadoop集群的資源管理器)。SparkWorker集群中任何可以運行應用程序的節(jié)點,運行一個或多個Executor進程。了解Spark架構基本組件Executor執(zhí)行器,在SparkWorker上執(zhí)行任務的組件、用于啟動線程池運行任務。每個Application擁有獨立的一組Executor。Task被發(fā)送到某個Executor的具體任務。了解Spark架構基本組件了解Spark作業(yè)運行流程Standalone模式運行流程yarn-clientyarn-cluster了解Spark作業(yè)運行流程Spark

on

YARN了解Spark作業(yè)運行流程yarn-cluster

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論