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

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

(四)Spark框架模塊

整個(gè)Spark 框架模塊包含:Spark Core、 Spark SQL、 Spark Streaming、 Spark GraphX和 Spark MLlib,大部分模塊的能力都在建立在其核心引擎之上;
(1)Spark Core,該模塊的數(shù)據(jù)結(jié)構(gòu)是RDD,實(shí)現(xiàn)了Spark的基本功能,包括RDD、任務(wù)調(diào)度、內(nèi)存管理、錯(cuò)誤恢復(fù)以及與存儲(chǔ)系統(tǒng)交互等;
(2)Spark SQL,該模塊的數(shù)據(jù)結(jié)構(gòu)主要是DataFrame,是Spark用來(lái)操作結(jié)構(gòu)化數(shù)據(jù)的程序包,通過(guò)該模塊,可以直接使用SQL操作數(shù)據(jù);
(3)Spark Streaming,其主要的數(shù)據(jù)結(jié)構(gòu)是DStream離散化流,是Spark對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行流式計(jì)算的組件;
(4)Spark GraphX,該模塊的數(shù)據(jù)結(jié)構(gòu)為RDD或者DataFrame,是Spark中用于圖計(jì)算的組件,性能良好,擁有豐富的功能和運(yùn)算符,能在海量數(shù)據(jù)上自如地運(yùn)行復(fù)雜的圖算法;
(5)Spark MLlib,該模塊的數(shù)據(jù)結(jié)構(gòu)也是RDD或者DataFrame,主要用于機(jī)器學(xué)習(xí),提供了常見(jiàn)的機(jī)器學(xué)習(xí)功能的程序庫(kù),包括分類、回歸、聚類等,同時(shí)也支持模型評(píng)估和數(shù)據(jù)導(dǎo)入等功能。
(五)Spark通信框架
整個(gè)Spark 框架通信模塊為Netty,Spark 1.6版本引入了Netty,在Spark 2.0之后,完全使用Netty,并移除了akka。
總結(jié)
Spark保留了MapReduce的分布式計(jì)算,基于內(nèi)存計(jì)算,提高的數(shù)據(jù)的計(jì)算能力;
其主要模塊有Spark Core、 Spark SQL、 Spark Streaming、 Spark GraphX和 Spark MLlib,不僅可以通過(guò)SQL的方式操作數(shù)據(jù),還可以對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行流式計(jì)算,同時(shí)也支持機(jī)器學(xué)習(xí);
Spark的特點(diǎn)主要是計(jì)算速度快,支持多種編程語(yǔ)言,并且提供了眾多友好的API,使得Spark的學(xué)習(xí)成本大大降低了。
以上就是大數(shù)據(jù)之Spark基礎(chǔ)環(huán)境的詳細(xì)內(nèi)容,更多關(guān)于Spark基礎(chǔ)環(huán)境的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
數(shù)據(jù)庫(kù)的三級(jí)模式和兩級(jí)映射介紹
在這里大家一定要注意三級(jí)模式中的概念模式對(duì)應(yīng)的是數(shù)據(jù)庫(kù)設(shè)計(jì)的邏輯模型,而不是概念模型(E-R模型),一定不要弄混了2012-10-10
數(shù)據(jù)庫(kù)sql查詢性能優(yōu)化詳解
這篇文章主要介紹了數(shù)據(jù)庫(kù)sql查詢性能優(yōu)化詳解,查詢優(yōu)化的本質(zhì)是讓數(shù)據(jù)庫(kù)優(yōu)化器為SQL語(yǔ)句選擇最佳的執(zhí)行計(jì)劃,對(duì)于大型的應(yīng)用系統(tǒng),大量的數(shù)據(jù)當(dāng)然需要效率最快的執(zhí)行語(yǔ)句,需要的朋友可以參考下2023-07-07
Navicat?premium?for?mac?12的安裝破解圖文教程
Navicat Premium是一款數(shù)據(jù)庫(kù)管理工具,將此工具連接數(shù)據(jù)庫(kù),你可以從中看到各種數(shù)據(jù)庫(kù)的詳細(xì)信息,這篇文章主要介紹了Mac下Navicat?premium?for?mac?12的安裝破解過(guò)程,需要的朋友可以參考下2024-01-01
DBeaver執(zhí)行外部sql文件詳細(xì)圖文教程
DBeaver最近才使用,以前使用的PL/SQL,有些不是很熟悉,記錄下來(lái),下面這篇文章主要給大家介紹了關(guān)于DBeaver執(zhí)行外部sql文件的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
SQL 優(yōu)化經(jīng)驗(yàn)總結(jié)34條
我們要做到不但會(huì)寫SQL,還要做到寫出性能優(yōu)良的SQL,以下為筆者學(xué)習(xí)、摘錄、并匯總部分資料與大家分享!2009-07-07
通過(guò)DBeaver連接Phoenix操作hbase的方法
DBeaver?可通過(guò)?JDBC?連接到數(shù)據(jù)庫(kù),可以支持幾乎所有的數(shù)據(jù)庫(kù)產(chǎn)品,本文介紹常用一種通用數(shù)據(jù)庫(kù)工具Dbeaver,通過(guò)DBeaver連接Phoenix操作hbase的操作,需要的朋友跟隨小編一起看看吧2021-11-11

