大數(shù)據(jù)之Spark基礎(chǔ)環(huán)境
前言
本篇文章開始介紹Spark基礎(chǔ)知識,包括Spark誕生的背景,應(yīng)用環(huán)境以及入門案例等,還是Spark學習之旅前,得先安裝Spark環(huán)境才行,具體安裝步驟可以看Spark環(huán)境搭建,讓我們接著往下聊。
一、Spark概述
(一)Spark是什么
Spark是Apache頂級的開源項目,主要用于處理大規(guī)模數(shù)據(jù)的分析引擎,該引擎的核心數(shù)據(jù)結(jié)構(gòu)是RDD彈性分布式數(shù)據(jù)集,這是一種分布式內(nèi)存抽象,程序員可以使用RDD在大規(guī)模集群中做內(nèi)存運算,并具有一定的容錯方式;
Spark保留了MapReduce的分布式并行計算的優(yōu)點,還改進了其較為明顯的缺陷,中間數(shù)據(jù)存儲在內(nèi)存中,大大提高了運行速度,同時還提供了豐富的API,提高了開發(fā)速度。

(二)Spark的四大特點
Spark底層使用Scala語言,是一種面向?qū)ο?、函?shù)式編程語言,能夠像操作本地集合一樣輕松的操作分布式數(shù)據(jù)集,Spark具有運行速度快、易用性好、通用性強和隨處運行等特點;
(1)速度快,Spark支持內(nèi)存計算,并且通過DAG有向無環(huán)圖執(zhí)行引擎支持無環(huán)數(shù)據(jù)流,相對MapReduce來說,Spark處理數(shù)據(jù)時,可以將中間處理結(jié)果數(shù)據(jù)存儲到內(nèi)存中,Spark每個任務(wù)以線程方式執(zhí)行,并不是像MapReduce以進程方式執(zhí)行,線程的啟動和銷毀相對于進程來說比較快;
(2)易于使用,Spark 支持Java、Scala、Python 、R和SQL語言等多種語言;
(3)通用型強,Spark 還提供包括Spark SQL、Spark Streaming、MLib 及GraphX在內(nèi)的多個工具庫,可以在同一個應(yīng)用中無縫地使用這些工具庫;
(4)運行方式多,Spark 支持多種運行方式,包括在 Hadoop 和 Mesos 上,也支持 Standalone的獨立運行模式,同時也可以運行在云Kubernetes上,獲取數(shù)據(jù)的方式也很多,支持從HDFS、HBase、Cassandra 及 Kafka 等多種途徑獲取數(shù)據(jù)。
(三)Spark的風雨十年
Spark的發(fā)展主要經(jīng)歷過幾大階段:
(1)2009年Spark起源于加州伯克利分校;
(2)2013年被捐贈給Apache;
(3)2014年稱為Apache頂級項目;
(4)2016年Spark2.0發(fā)布
(5)2019年Spark3.0發(fā)布

(四)Spark框架模塊

整個Spark 框架模塊包含:Spark Core、 Spark SQL、 Spark Streaming、 Spark GraphX和 Spark MLlib,大部分模塊的能力都在建立在其核心引擎之上;
(1)Spark Core,該模塊的數(shù)據(jù)結(jié)構(gòu)是RDD,實現(xiàn)了Spark的基本功能,包括RDD、任務(wù)調(diào)度、內(nèi)存管理、錯誤恢復以及與存儲系統(tǒng)交互等;
(2)Spark SQL,該模塊的數(shù)據(jù)結(jié)構(gòu)主要是DataFrame,是Spark用來操作結(jié)構(gòu)化數(shù)據(jù)的程序包,通過該模塊,可以直接使用SQL操作數(shù)據(jù);
(3)Spark Streaming,其主要的數(shù)據(jù)結(jié)構(gòu)是DStream離散化流,是Spark對實時數(shù)據(jù)進行流式計算的組件;
(4)Spark GraphX,該模塊的數(shù)據(jù)結(jié)構(gòu)為RDD或者DataFrame,是Spark中用于圖計算的組件,性能良好,擁有豐富的功能和運算符,能在海量數(shù)據(jù)上自如地運行復雜的圖算法;
(5)Spark MLlib,該模塊的數(shù)據(jù)結(jié)構(gòu)也是RDD或者DataFrame,主要用于機器學習,提供了常見的機器學習功能的程序庫,包括分類、回歸、聚類等,同時也支持模型評估和數(shù)據(jù)導入等功能。
(五)Spark通信框架
整個Spark 框架通信模塊為Netty,Spark 1.6版本引入了Netty,在Spark 2.0之后,完全使用Netty,并移除了akka。
總結(jié)
Spark保留了MapReduce的分布式計算,基于內(nèi)存計算,提高的數(shù)據(jù)的計算能力;
其主要模塊有Spark Core、 Spark SQL、 Spark Streaming、 Spark GraphX和 Spark MLlib,不僅可以通過SQL的方式操作數(shù)據(jù),還可以對實時數(shù)據(jù)進行流式計算,同時也支持機器學習;
Spark的特點主要是計算速度快,支持多種編程語言,并且提供了眾多友好的API,使得Spark的學習成本大大降低了。
以上就是大數(shù)據(jù)之Spark基礎(chǔ)環(huán)境的詳細內(nèi)容,更多關(guān)于Spark基礎(chǔ)環(huán)境的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Navicat?premium?for?mac?12的安裝破解圖文教程
Navicat Premium是一款數(shù)據(jù)庫管理工具,將此工具連接數(shù)據(jù)庫,你可以從中看到各種數(shù)據(jù)庫的詳細信息,這篇文章主要介紹了Mac下Navicat?premium?for?mac?12的安裝破解過程,需要的朋友可以參考下2024-01-01

