Shell 流程控制
810
2025-04-02
Spark 是什么?
● 官方文檔解釋:Apache Spark? is a fast and general engine for large-scale data processing.
通俗的理解:Spark是基于內存計算的大數據并行計算框架。Spark基于內存計算,提高了在大數據環境下數據處理的實時性,同時保證了高容錯性和高可伸縮性,允許用戶將Spark 部署在大量廉價硬件之上,形成集群。
● 擴展了MapReduce計算模型;相比與MapReduce編程模型,Spark提供了更加靈活的DAG(Directed Acyclic Graph) 編程模型, 不僅包含傳統的map、reduce接口, 還增加了filter、flatMap、union等操作接口,使得編寫Spark程序更加靈活方便。
● 高效支持多種計算模式;Spark 不僅可以做離線運算,還可以做流式運算以及迭代式運算。
Spark 組成---大一統軟件棧
Spark Core
● Spark Core 實現了Spark 的基本功能,包含任務調度、內存管理、錯誤恢復、與存儲系統交互等模塊。
● RDD(resilient distributed dataset,彈性分布式數據集)的API 定義。RDD是一個抽象的數據集,提供對數據并行和容錯的處理。初次使用RDD時,其接口有點類似Scala的Array,提供map,filter,reduce等操作。但是,不支持隨機訪問。剛開始不太習慣,但是逐漸熟悉函數編程和RDD 的原理后,發現隨機訪問數據的場景并不常見。
Spark SQL
● Spark SQL 是Spark 用來操作結構化數據的程序包。
● Spark SQL 直接兼容Hive SQL。
● 多數據源(Hive表、Parquet、JSON等);Spark SQL 可以操作Hive表,可以讀取Parquet文件(列式存儲結構),可以讀取JSON文件,還可以處理hdfs上面的文件。
● SQL與RDD編程結合使用。
● 從Shark演變到Spark SQL。
Spark Streaming
● Spark 提供的對實時數據進行流式計算的組件。
● 微批處理(Storm、Flink)—從批處理到流處理
Spark MLlib
● Spark 提供的包含常見機器學習(ML)功能的庫。
● 分類、回歸、聚類、協同過濾等
● 模型評估、數據導入等額外的支持功能
● Mahout(Runs on distributed Spark, H2O, and Flink)
GraphX
● GraphX是Spark 提供的圖計算和圖挖掘的庫。
● 與Spark Streaming 和Spark SQL 類似,GraphX 也擴展了Spark 的RDD API,能用來創建一個頂點和邊都包含任意屬性的有向圖
● GraphX還支持針對圖的各種計算和常見的圖算法。
Spark與Hadoop的關系
Spark與Hadoop的關系---青于于藍
Spark與Hadoop的關系---相輔相成
Spark的競爭對手---Flink
● Flink是先有流處理后有批處理
● Pipeline vs Stage
● http://note.youdao.com/share/?id=f3b0a1832e4ee43e3e3635913d5e00e1&type=note
Spark的競爭對手---Storm/JStorm
● Storm僅限于流計算(topology)
● JStorm參照Flink改進了Storm
Spark的競爭對手---Hadoop3.x
http://news.cnw.com.cn/news-international/htm2016/20160603_327510.shtml
spark Hadoop 大數據
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。