提及大數據的工具,最廣爲人知的就是Hadoop和Spark了,Hadoop在上一篇文章中已經有所介紹,這期小編就爲你們介紹後起之秀Spark。php
Spark是一個運算速度快如閃電的Apache項目,研發人員聲稱它是「一種用於數據大規模處理的快速通用引擎」,[A1] Spark是UC BerkeleyAMP lab所開源的類Hadoop MapReduce的通用的並行計算框架,基於map reduce算法實現的分佈式計算,擁有Hadoop MapReduce所具備的優勢。[A2] html
它提供了一個運算速度快的通常化數據處理平臺,可讓你程序的內存計算速度提升到100倍,或者磁盤計算速度(Hadoop)提升10倍。去年的Daytona GraySort比賽中,Spark只用了Hadoop十分之一數量的機器就實現了其三倍多的速度,目前,Spark已經成了處理PB級別數據運算速度最快的開源工具。[A3] 算法
Spark核心概念是ResilientDistributed Dataset (RDD)彈性分佈數據集,RDD實現了以操做本地集合的方式來操做分佈式數據集的抽象實現。RDD是Spark最核心的東西,它表示已被分區,不可變的並可以被並行操做的數據集合,不一樣的數據集格式對應不一樣的RDD實現。RDD必須是可序列化的,能夠cache到內存中,每次對RDD數據集的操做以後的結果,均可以存放到內存中,下一個操做能夠直接從內存中輸入,省去了MapReduce大量的磁盤IO操做。這對於迭代運算比較常見的機器學習算法, 交互式數據挖掘來講,效率提高比較大。[A4] 微信
以RDD爲核心的Spark構架圖以下框架
Spark在機器學習方面有着無與倫比的優點,特別適合須要屢次迭代計算的算法。同時Spark擁有很是出色的容錯和調度機制,確保系統的穩定運行[A5] ,而在易用性方面,更是大有名氣,它隨帶易於使用的API,支持Scala(原生語言)、Java、Python和Spark SQL。SparkSQL很是相似於SQL 92,因此幾乎不須要經歷一番學習,立刻能夠上手。[A6] 機器學習
Spark幫助人們簡化了處理大規模數據的步驟流程,將許多複雜的功能(好比機器學習算法和圖算法)無縫地結合起來,並以其快如閃電的計算速度,正在快速地擴大着本身的影響力,咱們有理由相信,憑藉Spark獨特的優異性能,將來Spark必將會綻開出更爲璀璨的光芒。分佈式
[A1]來源:別再比較Hadoop和Spark了,那不是設計人員的初衷ide
[A2]來源科普Spark,Spark是什麼,如何使用Spark;百度百科工具
[A3]來源:Apache Spark介紹及案例展現oop
[A4]來源:科普Spark,Spark核心是什麼,如何使用Spark(2)http://www.aboutyun.com/thread-6850-1-1.html
[A5]來源:跟我一塊兒數據挖掘(22)——spark入門
[A6]來源:別再比較Hadoop和Spark了,那不是設計人員的初衷
最終來源:啓創方舟微信公衆號