Spark 由加州大學(xué)伯克利分校 AMP 實(shí)驗(yàn)室 (Algorithms, Machines, and People Lab) 開發(fā),可用來構(gòu)建大型的、低延遲的大數(shù)據(jù)處理的利用程序。并且提供了用于機(jī)器學(xué)習(xí) (MLlib), 流計(jì)算(Streaming), 圖計(jì)算 (GraphX) 等子模塊, 1.4.0 版本更是提供了與 R 語言的集成,這使得 Spark 幾近成了多領(lǐng)域通吃的全能技術(shù)。Spark 對數(shù)據(jù)的存儲,轉(zhuǎn)換,和計(jì)算都是基于1個叫 RDD(Resilient Distributed Dataset) 散布式內(nèi)存的抽象,利用程序?qū)π枰?jì)算的數(shù)據(jù)的操作都是通過對 RDD 的1系列轉(zhuǎn)化 (Transformation) 和動作 (Action) 算子完成的,其中轉(zhuǎn)化算子可以把1個 RDD 轉(zhuǎn)成另外一個 RDD,如 filter 算子可以通過添加過濾條件生成1個只包括符合條件的數(shù)據(jù)的新的 RDD。動作算子負(fù)責(zé)完成終究的計(jì)算,如 count 算子可以計(jì)算出全部 RDD 表示的數(shù)據(jù)集中元素的個數(shù)。關(guān)于 Spark 所支持的算子 和使用方法請參考 Spark 官方網(wǎng)站。
Spark是全部BDAS的核心組件,是1個大數(shù)據(jù)散布式編程框架,不但實(shí)現(xiàn)了MapReduce的算子map函數(shù)和reduce函數(shù)及計(jì)算模型,還提供更加豐富的算子,如filter、join、groupByKey等。是1個用來實(shí)現(xiàn)快速而同用的集群計(jì)算的平臺。
Spark將散布式數(shù)據(jù)抽象為彈性散布式數(shù)據(jù)集(RDD),實(shí)現(xiàn)了利用任務(wù)調(diào)度、RPC、序列化和緊縮,并為運(yùn)行在其上的上層組件提供API。其底層采取Scala這類函數(shù)式語言書寫而成,并且所提供的API深度鑒戒Scala函數(shù)式的編程思想,提供與Scala類似的編程接口
上一篇 JAVA之旅(九)——Object類,equals,toString,getClass,內(nèi)部類訪問規(guī)則,靜態(tài)內(nèi)部類,內(nèi)部類原則,匿名內(nèi)部類