(本人初次接觸spark可能有些地方理解的不夠到位,希望各位讀者多多指正,對於不恰當的地方也會進行改進)
一、spark:快速通用的大規模數據處理引擎。(想對spark的定義和特點有較具體的認識可參考其官方網站:http://spark.apache.org/)
官方文檔:
二、spark的特點:
1、速度快
在上篇文章中已經提到過spark的計算速度快是基於兩原因:
一是:spark的計算是基於內存的;
二是:spark具有優秀的作業調度策略。
2、易使用
spark提供了支持多種語言的API(scala、python、javan、R等),其中scala的使用最為廣泛(spark是基於scala語言開發的)
3、通用性
spark提供了Spark SQL 、Spark Streaming 、Mlib、Graghx組件:
(1)Spark Core :實現了 Spark 的基本功能(任務調度、內存管理、錯誤恢復、與存儲系統交互等模塊)。內部定義 了RDD(spark通過RDD將各組件聯系在一起! ),提供了很多的API來創建和操作RDD。
(2)Spark SQL 是:Spark 用來操作結構化數據的程序包,可以用SQL語句進行數據查詢。
(3)Spark Streaming : 實時數據流處理組建,提供了用來操作數據流的 API。
(4)MLlib:MLlib 提供了很多種機器學習算法(分類、回歸、聚類、協同過濾等)。
( 5 ) GraphX :用來操作圖的程序庫,可以進行並行的圖計算。