大數(shù)據(jù)之Spark基礎(chǔ)環(huán)境
前言
本篇文章開始介紹Spark基礎(chǔ)知識,包括Spark誕生的背景,應(yīng)用環(huán)境以及入門案例等,還是Spark學(xué)習(xí)之旅前,得先安裝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)點,還改進(jìn)了其較為明顯的缺陷,中間數(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以進(jìn)程方式執(zhí)行,線程的啟動和銷毀相對于進(jìn)程來說比較快;
(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的風(fēng)雨十年
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)存管理、錯誤恢復(fù)以及與存儲系統(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ù)進(jìn)行流式計算的組件;
(4)Spark GraphX,該模塊的數(shù)據(jù)結(jié)構(gòu)為RDD或者DataFrame,是Spark中用于圖計算的組件,性能良好,擁有豐富的功能和運算符,能在海量數(shù)據(jù)上自如地運行復(fù)雜的圖算法;
(5)Spark MLlib,該模塊的數(shù)據(jù)結(jié)構(gòu)也是RDD或者DataFrame,主要用于機(jī)器學(xué)習(xí),提供了常見的機(jī)器學(xué)習(xí)功能的程序庫,包括分類、回歸、聚類等,同時也支持模型評估和數(shù)據(jù)導(dǎo)入等功能。
(五)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ù)進(jìn)行流式計算,同時也支持機(jī)器學(xué)習(xí);
Spark的特點主要是計算速度快,支持多種編程語言,并且提供了眾多友好的API,使得Spark的學(xué)習(xí)成本大大降低了。
以上就是大數(shù)據(jù)之Spark基礎(chǔ)環(huán)境的詳細(xì)內(nèi)容,更多關(guān)于Spark基礎(chǔ)環(huán)境的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
虛擬主機(jī)ACCESS轉(zhuǎn)換成MSSQL完全攻略(圖文教程)
大家都知道,ACCESS數(shù)據(jù)庫在數(shù)據(jù)量到達(dá)一定程度后,訪問速度會明顯變慢,甚至造成崩潰。目前,大多數(shù)虛擬主機(jī)服務(wù)商提供的ASP主機(jī)空間一般都同時支持MS ACCESS和MS SQL兩種類型的數(shù)據(jù)庫。2010-04-04數(shù)據(jù)庫查詢中遭遇特殊字符導(dǎo)致問題的解決方法
數(shù)據(jù)庫查詢中遭遇特殊字符導(dǎo)致問題的解決方法,我們提供的是asp的,但其它的數(shù)據(jù)庫與語言下的解決方法也大同小異。2007-12-12使用DataGrip創(chuàng)建數(shù)據(jù)庫并讀取sql文件圖文教程
這篇文章主要給大家介紹了關(guān)于使用DataGrip創(chuàng)建數(shù)據(jù)庫并讀取sql文件的相關(guān)資料,DataGrip是一款數(shù)據(jù)庫管理客戶端工具,方便連接到數(shù)據(jù)庫服務(wù)器,執(zhí)行sql、創(chuàng)建表、創(chuàng)建索引以及導(dǎo)出數(shù)據(jù)等,需要的朋友可以參考下2023-11-11GaussDB數(shù)據(jù)庫使用COPY命令導(dǎo)入導(dǎo)出數(shù)據(jù)的場景分析
使用COPY命令可以方便地導(dǎo)入數(shù)據(jù)到GaussDB,GaussDB還提供了其他數(shù)據(jù)導(dǎo)入工具和功能,如使用GDS導(dǎo)入數(shù)據(jù)、使用INSERT多行插入、使用gsql元命令導(dǎo)入數(shù)據(jù)、ETL工具集成等,以滿足不同場景下的數(shù)據(jù)導(dǎo)入需求,對GaussDB COPY命令相關(guān)知識感興趣的朋友一起看看吧2024-01-01