資源描述:
《深入淺出spark》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、深入淺出Spark2015年8月研究院王鳳目錄Spark簡(jiǎn)介核心模塊的實(shí)現(xiàn)Spark應(yīng)用Spark與Hadoop的區(qū)別與聯(lián)系Spark總體流程Spark應(yīng)用庫(kù)大數(shù)據(jù)的電花火石Spark簡(jiǎn)介什么是SparkApacheSpark?isafastandgeneralengineforlarge-scaledataprocessingSpark是UCBerkeleyAMPLab開(kāi)發(fā)的是一種計(jì)算框架,分布式資源工作交由集群管理軟件(Mesos、YARN)aMapReduce-likeclustercomputingframeworkdesignedforlow-late
2、ncyiterativejobsandinteractiveusefromaninterpreterSpark簡(jiǎn)介Spark的發(fā)展歷程Spark代碼貢獻(xiàn)者每個(gè)月的增長(zhǎng)曲線2009:Spark誕生于伯克利大學(xué)AMPLab2010:開(kāi)源2013.6:Apache孵化器項(xiàng)目2014.2:Apache頂級(jí)項(xiàng)目目前為止,發(fā)布的最新版本為Spark1.4.1Spark在最近6年內(nèi)發(fā)展迅速,相較于其他大數(shù)據(jù)平臺(tái)或框架而言,Spark的代碼庫(kù)最為活躍。http://spark.apache.org/截止2015年6月Spark的Contributor比2014年漲了3倍,達(dá)到7
3、30人;總代碼行數(shù)也比2014年漲了2倍多,達(dá)到40萬(wàn)行Spark應(yīng)用也越來(lái)越廣泛,最大的集群來(lái)自騰訊——8000個(gè)節(jié)點(diǎn),單個(gè)Job最大分別是阿里巴巴和Databricks——1PBSpark特點(diǎn)Spark簡(jiǎn)介L(zhǎng)ogisticregressioninHadoopandSpark高效提供Cache機(jī)制來(lái)支持需要反復(fù)迭代的計(jì)算或者多次數(shù)據(jù)共享,減少數(shù)據(jù)讀取的IO開(kāi)銷(xiāo)。與Hadoop的MapReduce相比,Spark基于內(nèi)存的運(yùn)算比MR要快100倍;而基于硬盤(pán)的運(yùn)算也要快10倍!易用Spark提供廣泛的數(shù)據(jù)集操作類(lèi)型(20+種),不像Hadoop只提供了Map和Re
4、duce兩種操作。Spark支持Java,Python和ScalaAPI,支持交互式的Python和Scala的shell。與Hadoop無(wú)縫銜接Spark可以使用YARN作為它的集群管理器讀取HDFS,HBase等一切Hadoop的數(shù)據(jù)先進(jìn)架構(gòu)Spark采用Scala語(yǔ)言編寫(xiě),底層采用了actormodel的akka作為通訊框架,代碼十分簡(jiǎn)潔高效?;贒AG圖的執(zhí)行引擎,減少多次計(jì)算之間中間結(jié)果寫(xiě)到Hdfs的開(kāi)銷(xiāo)。建立在統(tǒng)一抽象的RDD(分布式內(nèi)存抽象)之上,使得它可以以基本一致的方式應(yīng)對(duì)不同的大數(shù)據(jù)處理場(chǎng)景。提供整體解決方案以其RDD模型的強(qiáng)大表現(xiàn)能力,逐漸
5、形成了一套自己的生態(tài)圈,提供了full-stack的解決方案。主要包括Spark內(nèi)存中批處理,SparkSQL交互式查詢(xún),SparkStreaming流式計(jì)算,GraphX和MLlib提供的常用圖計(jì)算和機(jī)器學(xué)習(xí)算法。OneStacktorulethemallSpark整體架構(gòu)Spark簡(jiǎn)介SparkSQLSparkStreamingGraphX(graph)MLlib(machinelearning)MesosYARNS3SparkStandalone存儲(chǔ)層資源調(diào)度層計(jì)算層工具層CassandraHbase…TachyonHDFSSpark提供了多種高級(jí)工具:S
6、harkSQL應(yīng)用于即席查詢(xún)(Ad-hocquery)、SparkStreaming應(yīng)用于流式計(jì)算、MLlib應(yīng)用于機(jī)器學(xué)習(xí)、GraphX應(yīng)用于圖處理。Spark可以基于自帶的standalone集群管理器獨(dú)立運(yùn)行,也可以部署在ApacheMesos和HadoopYARN等集群管理器上運(yùn)行。Spark可以訪問(wèn)存儲(chǔ)在HDFS、Hbase、Cassandra、AmazonS3、本地文件系統(tǒng)等等上的數(shù)據(jù),Spark支持文本文件,序列文件,以及任何Hadoop的InputFormat。目錄Spark簡(jiǎn)介核心模塊的實(shí)現(xiàn)Spark應(yīng)用Spark與Hadoop的區(qū)別與聯(lián)系Sp
7、ark總體流程Spark應(yīng)用庫(kù)Spark組件DriverProgram(驅(qū)動(dòng)程序)是Spark的核心組件構(gòu)建SparkContext(Spark應(yīng)用的入口,它負(fù)責(zé)和整個(gè)集群的交互,創(chuàng)建需要的變量,還包含集群的配置信息等)將用戶(hù)提交的job轉(zhuǎn)換為DAG圖(類(lèi)似數(shù)據(jù)處理的流程圖)根據(jù)策略將DAG圖劃分為多個(gè)stage,根據(jù)分區(qū)從而生成一系列tasks根據(jù)tasks要求向資源管理器申請(qǐng)資源提交任務(wù)并檢測(cè)任務(wù)狀態(tài)Executor真正執(zhí)行task的單元,一個(gè)WorkerNode上可以有多個(gè)ExecutorSpark任務(wù)應(yīng)用程序:由一個(gè)driverprogram和多個(gè)job
8、構(gòu)成;job:由多個(gè)st