大數(shù)據(jù)之Spark基礎(chǔ)環(huán)境
前言
本篇文章開始介紹Spark基礎(chǔ)知識(shí),包括Spark誕生的背景,應(yīng)用環(huán)境以及入門案例等,還是Spark學(xué)習(xí)之旅前,得先安裝Spark環(huán)境才行,具體安裝步驟可以看Spark環(huán)境搭建,讓我們接著往下聊。
一、Spark概述
(一)Spark是什么
Spark是Apache頂級(jí)的開源項(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,提高了開發(fā)速度。
(二)Spark的四大特點(diǎn)
Spark底層使用Scala語言,是一種面向?qū)ο?、函?shù)式編程語言,能夠像操作本地集合一樣輕松的操作分布式數(shù)據(jù)集,Spark具有運(yùn)行速度快、易用性好、通用性強(qiáng)和隨處運(yùn)行等特點(diǎn);
(1)速度快,Spark支持內(nèi)存計(jì)算,并且通過DAG有向無環(huán)圖執(zhí)行引擎支持無環(huán)數(shù)據(jù)流,相對(duì)MapReduce來說,Spark處理數(shù)據(jù)時(shí),可以將中間處理結(jié)果數(shù)據(jù)存儲(chǔ)到內(nèi)存中,Spark每個(gè)任務(wù)以線程方式執(zhí)行,并不是像MapReduce以進(jìn)程方式執(zhí)行,線程的啟動(dòng)和銷毀相對(duì)于進(jìn)程來說比較快;
(2)易于使用,Spark 支持Java、Scala、Python 、R和SQL語言等多種語言;
(3)通用型強(qiáng),Spark 還提供包括Spark SQL、Spark Streaming、MLib 及GraphX在內(nèi)的多個(gè)工具庫,可以在同一個(gè)應(yīng)用中無縫地使用這些工具庫;
(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)歷過幾大階段:
(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用來操作結(jié)構(gòu)化數(shù)據(jù)的程序包,通過該模塊,可以直接使用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í),提供了常見的機(jī)器學(xué)習(xí)功能的程序庫,包括分類、回歸、聚類等,同時(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,不僅可以通過SQL的方式操作數(shù)據(jù),還可以對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行流式計(jì)算,同時(shí)也支持機(jī)器學(xué)習(xí);
Spark的特點(diǎn)主要是計(jì)算速度快,支持多種編程語言,并且提供了眾多友好的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)文章
虛擬主機(jī)ACCESS轉(zhuǎn)換成MSSQL完全攻略(圖文教程)
大家都知道,ACCESS數(shù)據(jù)庫在數(shù)據(jù)量到達(dá)一定程度后,訪問速度會(huì)明顯變慢,甚至造成崩潰。目前,大多數(shù)虛擬主機(jī)服務(wù)商提供的ASP主機(jī)空間一般都同時(shí)支持MS ACCESS和MS SQL兩種類型的數(shù)據(jù)庫。2010-04-04識(shí)別 MS SQL 各個(gè)版本的版本號(hào)的方法
識(shí)別 MS SQL 各個(gè)版本的版本號(hào)的方法...2007-10-10數(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ù)的場(chǎng)景分析
使用COPY命令可以方便地導(dǎo)入數(shù)據(jù)到GaussDB,GaussDB還提供了其他數(shù)據(jù)導(dǎo)入工具和功能,如使用GDS導(dǎo)入數(shù)據(jù)、使用INSERT多行插入、使用gsql元命令導(dǎo)入數(shù)據(jù)、ETL工具集成等,以滿足不同場(chǎng)景下的數(shù)據(jù)導(dǎo)入需求,對(duì)GaussDB COPY命令相關(guān)知識(shí)感興趣的朋友一起看看吧2024-01-01sql注入報(bào)錯(cuò)之注入原理實(shí)例解析
所謂報(bào)錯(cuò)注入,就是通過運(yùn)行SQL查詢語句回顯查詢結(jié)果,下面這篇文章主要給大家介紹了關(guān)于sql注入報(bào)錯(cuò)之注入原理的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06