小象學(xué)院Spark+Python大數(shù)據(jù)分析實戰(zhàn)
2023-02-23 10:31 作者:娜娜絡(luò)絡(luò) | 我要投稿
什么是Spark?
Apache Spark是由加州伯克利分校AMP實驗室開發(fā)的通用大數(shù)據(jù)處理框架。Spark提供了大數(shù)據(jù)處理的一站式解決方案,以Spark Core為基礎(chǔ)推出了Spark SQL、Spark Streaming、MLlib、GraphX、SparkR等組件。整個Spark生態(tài)體系稱為BDAS,即:伯克利數(shù)據(jù)分析棧。
Spark特點
Spark具有運行速度快、易用性好、通用型強(qiáng)和隨處運行的特點。
運行速度快(Speed)
如果Spark基于內(nèi)存讀取,速度是Hadoop的100倍;使用磁盤讀取,也是Hadoop的十倍。spark之所以能夠比Hadoop快,有兩點主要原因:基于內(nèi)存計算和引入DAG執(zhí)行引擎。
Spark在迭代計算過程中數(shù)據(jù)默認(rèn)是保存在內(nèi)存中,后續(xù)計算直接讀取內(nèi)存中的結(jié)果即可。而Hadoop每一步計算都是直接將結(jié)果存儲在磁盤中,后續(xù)的計算從磁盤重新讀取上次計算結(jié)果?;趦?nèi)存讀取數(shù)據(jù)的速度比磁盤讀取的速度高出兩個數(shù)量級。
Spark在實際執(zhí)行任務(wù)前,將計算步驟根據(jù)依賴關(guān)系形成DAG圖(有向無環(huán)圖),在執(zhí)行過程中就會根據(jù)DAG圖的順序來執(zhí)行,這個過程還會對DAG進(jìn)行計算路徑的優(yōu)化,大大減少了I/O讀取操作。而Hadoop需要手動或者借助Oozie等工具來處理這些步驟之間的關(guān)系。
標(biāo)簽: