柚子快報激活碼778899分享:大數(shù)據(jù) 分布式 Spark概述
一,認(rèn)識Spark
Spark是一種基于內(nèi)存的快速、通用、可擴(kuò)展的大數(shù)據(jù)分析計算引擎。
是加州大學(xué)伯克利分校AMP實驗室(Algorithms, Machines, and People Lab)開發(fā)的通用內(nèi)存并行計算框架Spark得到了眾多大數(shù)據(jù)公司的支持,這些公司包括Hortonworks、IBM、Intel、Cloudera、MapR、Pivotal、百度、阿里、騰訊、京東、攜程、優(yōu)酷土豆。當(dāng)前百度的Spark已應(yīng)用于大搜索、直達(dá)號、百度大數(shù)據(jù)等業(yè)務(wù);阿里利用GraphX構(gòu)建了大規(guī)模的圖計算和圖挖掘系統(tǒng),實現(xiàn)了很多生產(chǎn)系統(tǒng)的推薦算法;騰訊Spark集群達(dá)到8000臺的規(guī)模,是當(dāng)前已知的世界上最大的Spark集群。
二,Spark的歷史
三,Spark的特點
1,快速
一般情況下,對于迭代次數(shù)較多的應(yīng)用程序,Spark程序在內(nèi)存中的運(yùn)行速度是Hadoop MapReduce運(yùn)行速度的100多倍,在磁盤上的運(yùn)行速度是Hadoop MapReduce運(yùn)行速度的10多倍。
2,易用性
Spark支持使用Scala、Python、Java及R語言快速編寫應(yīng)用。同時Spark提供超過80個高階算子,使得編寫并行應(yīng)用程序變得容易,并且可以在Scala、Python或R的交互模式下使用Spark。
3,通用性
Spark可以與SQL、Streaming及復(fù)雜的分析良好結(jié)合。Spark還有一系列的高級工具,包括Spark SQL、MLlib(機(jī)器學(xué)習(xí)庫)、GraphX(圖計算)和Spark Streaming(流計算),并且支持在一個應(yīng)用中同時使用這些組件。
4,隨處運(yùn)行
用戶可以使用Spark的獨立集群模式運(yùn)行Spark,也可以在EC2(亞馬遜彈性計算云)、Hadoop YARN或者Apache Mesos上運(yùn)行Spark。并且可以從HDFS、Cassandra、HBase、Hive、Tachyon和任何分布式文件系統(tǒng)讀取數(shù)據(jù)。
5,代碼簡潔
Spark支持使用Scala、Python等語言編寫代碼。Scala和Python的代碼相對Java的代碼而言比較簡潔,因此,在Spark 中一般都使用Scala或Python編寫應(yīng)用程序,這也比在MapReduce 中編寫應(yīng)用程序簡單方便。例如,MapReduce 實現(xiàn)單詞計數(shù)可能需要60多行代碼,而Spark使用Scala語言實現(xiàn)只需要一行。
三,Spark的內(nèi)置模塊
Spark Core:實現(xiàn)了Spark的基本功能,包含任務(wù)調(diào)度、內(nèi)存管理、錯誤恢復(fù)、與存儲系統(tǒng)交互等模塊。Spark Core中還包含了對彈性分布式數(shù)據(jù)集(Resilient Distributed DataSet,簡稱RDD)的API定義。
Spark SQL:是Spark用來操作結(jié)構(gòu)化數(shù)據(jù)的程序包。通過Spark SQL,我們可以使用 SQL或者Apache Hive版本的HQL來查詢數(shù)據(jù)。Spark SQL支持多種數(shù)據(jù)源,比如Hive表、Parquet以及JSON等。
Spark Streaming:是Spark提供的對實時數(shù)據(jù)進(jìn)行流式計算的組件。提供了用來操作數(shù)據(jù)流的API,并且與Spark Core中的 RDD API高度對應(yīng)。
Spark MLlib:提供常見的機(jī)器學(xué)習(xí)功能的程序庫。包括分類、回歸、聚類、協(xié)同過濾等,還提供了模型評估、數(shù)據(jù) 導(dǎo)入等額外的支持功能。
Spark GraphX:主要用于圖形并行計算和圖挖掘系統(tǒng)的組件。
集群管理器:Spark設(shè)計為可以高效地在一個計算節(jié)點到數(shù)千個計算節(jié)點之間伸縮計算。為了實現(xiàn)這樣的要求,同時獲得最大靈活性,Spark支持在各種集群管理器(Cluster Manager)上運(yùn)行,包括Hadoop YARN、Apache Mesos,以及Spark自帶的一個簡易調(diào)度器,叫作獨立調(diào)度器。
四,Spark的核心數(shù)據(jù)集RDD及核心原理
彈性分布式數(shù)據(jù)集(Resilient Distributed Dataset,RDD)是Spark中非常重要的概念,可以簡單地理解成一個提供了許多操作接口的數(shù)據(jù)集合。與一般數(shù)據(jù)集不同的是,RDD被劃分為一到多個分區(qū)(Partition,可以對比HDFS的文件塊的概念進(jìn)行理解),所有分區(qū)數(shù)據(jù)分布存儲在不同機(jī)器的 彈性分布式配資 內(nèi)存(Memory)或磁盤(如HDFS)中。
窄依賴指的是子RDD的一個分區(qū)只依賴于某個父RDD中的一個分區(qū)。? 寬依賴指的是子RDD的每一個分區(qū)都依賴于某個父RDD中一個以上的分區(qū)
柚子快報激活碼778899分享:大數(shù)據(jù) 分布式 Spark概述
精彩內(nèi)容
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。