1、Spark是什麼?
Spark是一個快速且通用的集羣計算平臺
1)快速
Spark擴充了流行的MapReduce的計算模型
Spark是基於內存計算的
2)通用
批處理,迭代式計算,交互查詢和流處理等
3)高度開放
提供了Python,Java,Scala,SQL的API和豐富的內置庫
2、Spark的組件
Spark包括多個緊密集成的組件
1)Spark core
- 包含Spark 的基本功能,包含任務調度,內存管理,容錯機制等
- 內部定義了RDDS(彈性分佈式數據集)
- 提供了很多APIs來創建和操作這些RDDS.
- 應用場景,爲其他組件提供底層的服務
2)Spark SQL
- 是Spark處理結構化數據的庫,就像Hive SQL,Mysql一樣
- 應用場景,企業中用來做報表統計
3)Spark Streaming
- 是實時數據流組件,類似Storm
- Spark Streaming提供了API來操作實時流數據
- 應用場景:企業中用來從kafka接收數據做實時統計
4)Mlib
- 一個包含機器學習功能的包,Machine Learning lib
- 包含分類,聚類,迴歸等,包括模型評估和數據導入
- 支持集羣上的橫向擴展
- 應用場景:機器學習
5)Graphx
- 是處理圖的庫(如社交網絡圖),並進行圖的並行計算
- 像Spark Streaming,Spark SQL一樣,也繼承了RDD的API
- 提供了各種圖的操作,和常用的圖算法,如:PangeRank
- 應用場景:圖計算
6)Cluster Managers
集羣管理,Spark自帶一個集羣管理,單獨調度器.
3、Spark的安裝
下載Spark,鏈接如下:
https://www.apache.org/dyn/closer.lua/spark/spark-3.0.0-preview2/spark-3.0.0-preview2-bin-hadoop2.7.tgz
安裝,直接解壓即可
4、Spark的Shell
Spark的Shell,使你能夠處理分佈在集羣上的數據,
Spark把數據加載到節點的內存中,因此分佈式處理可以秒級完成.
快速使迭代式計算,實時查詢,分析一般能夠在shells中完成
Spark提供了python Shells和scala shells
5、SparkShell讀取文件
讀取文件
var lines = sc.textFile("../spark/helloSpark")
lines.count()
lines.first()
欲瞭解更多spark相關的內容,請關注公衆號:架構師Plus