spark的介紹
1、什么是spark?
分布式計算引擎,也是快速通用的大規模數據處理引擎
2、spark的特點
(1)速度快
spark的計算是基於內存的;spark具有優秀的作業調度策略
(2)易使用
spark提供了支持多種語言的API(scala、python、javan、R等;
scala的使用最為廣泛(spark是基於scala語言開發的)
(3)通用性
spark提供了Spark SQL 、Spark Streaming 、Mlib、Graghx組件
(4)代碼簡潔
缺點:不穩定
3、Spark的組件
1、Spark Core(Spark的核心):算子
實現了 Spark 的基本功能(任務調度、內存管理、錯誤恢復、與存儲系統交互等模塊);
提供了很多的API來創建和操作RDD;
內部定義 了RDD(spark通過RDD將各組件聯系在一起)
2、Spark SQL 是:Spark 用來操作結構化數據的程序包,可以用SQL語句進行數據查詢
3、Spark Streaming : 實時數據流處理組建,提供了用來操作數據流的 API
4、MLlib:提供了很多種機器學習算法(分類、回歸、聚類、協同過濾等)
5、GraphX :用來操作圖的程序庫,可以進行並行的圖計算。
4、Spark與Hadoop的區別
(1)hadoop是基於磁盤的,它的運算結果保存在磁盤當中;而spark的運算是基於內存的。
(2)spark的運算速度是hadoop的100倍(官方公布);即使在磁盤當中運算,spark也是hadoop的10倍左右
spark比hadoop速度快的兩個原因:
(1)spark是基於內存,hadoop基於磁盤
(2)spark具有優秀的作業調度策略(使用了有向無環圖DAG)
(3)hadoop有額外的復制,序列化,磁盤IO開銷