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