Spark概述

Spark內(nèi)置模塊

(1)Spark是一種基于內(nèi)存的快速癣缅、通用安聘、可擴(kuò)展的大數(shù)據(jù)分析引擎。
(2)SparkSQL麦向、SparkStreaming瘟裸、Spark Mlib、Spark Graghx诵竭、SparkCore

  • Spark Core:實現(xiàn)了Spark的基本功能话告,包含任務(wù)調(diào)度、內(nèi)存管理卵慰、錯誤恢復(fù)沙郭、與存儲系統(tǒng)交互等模塊。Spark Core中還包含了對彈性分布式數(shù)據(jù)集(Resilient Distributed DataSet裳朋,簡稱RDD)的API定義病线。
  • Spark SQL:是Spark用來操作結(jié)構(gòu)化數(shù)據(jù)的程序包。通過Spark SQL鲤嫡,我們可以使用 SQL或者Apache Hive版本的SQL方言(HQL)來查詢數(shù)據(jù)送挑。Spark SQL支持多種數(shù)據(jù)源,比如Hive表暖眼、Parquet以及JSON等惕耕。
  • Spark Streaming:是Spark提供的對實時數(shù)據(jù)進(jìn)行流式計算的組件。提供了用來操作數(shù)據(jù)流的API诫肠,并且與Spark Core中的 RDD API高度對應(yīng)司澎。
  • Spark MLlib:提供常見的機(jī)器學(xué)習(xí)(ML)功能的程序庫。包括分類区赵、回歸惭缰、聚類、協(xié)同過濾等笼才,還提供了模型評估漱受、數(shù)據(jù) 導(dǎo)入等額外的支持功能。
  • 集群管理器:Spark 設(shè)計為可以高效地在一個計算節(jié)點到數(shù)千個計算節(jié)點之間伸縮計 算骡送。為了實現(xiàn)這樣的要求昂羡,同時獲得最大靈活性,Spark支持在各種集群管理器(Cluster Manager)上運行摔踱,包括Hadoop YARN虐先、Apache Mesos,以及Spark自帶的一個簡易調(diào)度 器派敷,叫作獨立調(diào)度器蛹批。
Spark特點

1)快:與Hadoo的MapReduce相比撰洗,Spark基于內(nèi)存的運算要快100倍以上,基于硬盤的運算也要快10倍以上腐芍。Spark實現(xiàn)了高效的DAC執(zhí)行引擎差导,可以通過基于內(nèi)存來高效處理數(shù)據(jù)流。計算的中間結(jié)果是存在于內(nèi)存中的猪勇。
2)易用:Spak支持Java设褐、Pthor和Scala的API,還支持超過30種高級算法泣刹,使用戶可以快速構(gòu)建不同的應(yīng)用助析。而且Spak支持交互式的Python和Scala的Shell,可以非常方便地在這些Shell中使用Spak集群來驗證解決問題的方法椅您。
3)通用:Spak提供了統(tǒng)一的解決方案外冀。Spark可以用于批處理、交互式查詢(SparkSQL)襟沮、實時處理(Spark Stearing)锥惋、機(jī)器學(xué)習(xí)(Spark MLlb)和圖計算(GraphX)昌腰。這些不同類型的處理都可以在同一個應(yīng)用中無縫使用开伏。減少了開發(fā)和維護(hù)的人力成本和部署平臺的物力成本。
4)兼容性:Spark可以非常方便地與其他的開源產(chǎn)品進(jìn)行融合遭商。比如固灵,Spark可以使用Hadoo的YAR和Apache Mesos作為它的資源管理和調(diào)度器,并且可以處理所有Hadoop支持的數(shù)據(jù)劫流,包括HDFS巫玻、HBase等。這對于已經(jīng)部署Hadoop集群的用戶特別重要祠汇,因為不需要做任何數(shù)據(jù)遷移就可以使用Spal的強(qiáng)大處理能力仍秤。

Spark運行模式
重要角色
  • Driver(驅(qū)動器)
    Spark的驅(qū)動器是執(zhí)行開發(fā)程序中的main方法的進(jìn)程。它負(fù)責(zé)開發(fā)人員編寫的用來創(chuàng)建SparkContext可很、創(chuàng)建RDD诗力,以及進(jìn)行RDD的轉(zhuǎn)化操作和行動操作代碼的執(zhí)行。如果你是用spark shell我抠,那么當(dāng)你啟動Spark shell的時候苇本,系統(tǒng)后臺自啟了一個Spark驅(qū)動器程序,就是在Spark shell中預(yù)加載的一個叫作 sc的SparkContext對象菜拓。如果驅(qū)動器程序終止瓣窄,那么Spark應(yīng)用也就結(jié)束了。主要負(fù)責(zé):
    1)把用戶程序轉(zhuǎn)為作業(yè)(JOB)
    2)跟蹤Executor的運行狀況
    3)為執(zhí)行器節(jié)點調(diào)度任務(wù)
    4)UI展示應(yīng)用運行狀況
  • Executor(執(zhí)行器)
    Spark Executor是一個工作進(jìn)程纳鼎,負(fù)責(zé)在 Spark 作業(yè)中運行任務(wù)俺夕,任務(wù)間相互獨立裳凸。Spark 應(yīng)用啟動時,Executor節(jié)點被同時啟動劝贸,并且始終伴隨著整個 Spark 應(yīng)用的生命周期而存在登舞。如果有Executor節(jié)點發(fā)生了故障或崩潰,Spark 應(yīng)用也可以繼續(xù)執(zhí)行悬荣,會將出錯節(jié)點上的任務(wù)調(diào)度到其他Executor節(jié)點上繼續(xù)運行菠秒。主要負(fù)責(zé):
    1)負(fù)責(zé)運行組成 Spark 應(yīng)用的任務(wù),并將結(jié)果返回給驅(qū)動器進(jìn)程氯迂;
    2)通過自身的塊管理器(Block Manager)為用戶程序中要求緩存的RDD提供內(nèi)存式存儲践叠。RDD是直接緩存在Executor進(jìn)程內(nèi)的,因此任務(wù)可以在運行時充分利用緩存數(shù)據(jù)加速運算嚼蚀。
運行模式
  • Local模式
    Local模式就是運行在一臺計算機(jī)上的模式禁灼,通常就是用于在本機(jī)上練手和測試。
    它可以通過以下集中方式設(shè)置Master轿曙。
    local:所有計算都運行在一個線程當(dāng)中弄捕,沒有任何并行計算,通常我們在本機(jī)執(zhí)行一些測試代碼导帝,或者練手守谓,就用這種模式;
    local[K]:指定使用幾個線程來運行計算您单,比如local[4]就是運行4個Worker線程斋荞。通常我們的Cpu有幾個Core,就指定幾個線程虐秦,最大化利用Cpu的計算能力平酿;
    local[]:這種模式直接幫你按照Cpu最多Cores來設(shè)置線程數(shù)了。

(1)基本語法
bin/spark-submit
--class <main-class>
--master <master-url>
--deploy-mode <deploy-mode>
--conf <key>=<value>
... # other options
<application-jar>
[application-arguments]
(2)參數(shù)說明:
--master 指定Master的地址悦陋,默認(rèn)為Local
--class: 你的應(yīng)用的啟動類 (如 org.apache.spark.examples.SparkPi)
--deploy-mode: 是否發(fā)布你的驅(qū)動到worker節(jié)點(cluster) 或者作為一個本地客戶端 (client) (default: client)*
--conf: 任意的Spark配置屬性蜈彼, 格式key=value. 如果值包含空格,可以加引號“key=value”
application-jar: 打包好的應(yīng)用jar,包含依賴. 這個URL在集群中全局可見俺驶。 比如hdfs:// 共享存儲系統(tǒng)幸逆, 如果是 file:// path, 那么所有的節(jié)點的path都包含同樣的jar
application-arguments: 傳給main()方法的參數(shù)
--executor-memory 1G 指定每個executor可用內(nèi)存為1G
--total-executor-cores 2 指定每個executor使用的cup核數(shù)為2個

  • Standalone模式
    構(gòu)建一個由Master+Slave構(gòu)成的Spark集群痒钝,Spark運行在集群中秉颗。
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop102:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
./examples/jars/spark-examples_2.11-2.1.1.jar \
100

歷史服務(wù)端口(需要額外配置)
hadoop102:18080

  • Yarn模式(重點)
    Spark客戶端直接連接Yarn,不需要額外構(gòu)建Spark集群送矩。有yarn-client和yarn-cluster兩種模式蚕甥,主要區(qū)別在于:Driver程序的運行節(jié)點。
    yarn-client:Driver程序運行在客戶端栋荸,適用于交互菇怀、調(diào)試凭舶,希望立即看到app的輸出
    yarn-cluster:Driver程序運行在由RM(ResourceManager)啟動的AP(APPMaster)適用于生產(chǎn)環(huán)境。
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
./examples/jars/spark-examples_2.11-2.1.1.jar \
100
幾種模式對比
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末爱沟,一起剝皮案震驚了整個濱河市帅霜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌呼伸,老刑警劉巖身冀,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異括享,居然都是意外死亡搂根,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進(jìn)店門铃辖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剩愧,“玉大人,你說我怎么就攤上這事娇斩∪示恚” “怎么了?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵犬第,是天一觀的道長锦积。 經(jīng)常有香客問我,道長瓶殃,這世上最難降的妖魔是什么充包? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮遥椿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘淆储。我一直安慰自己冠场,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布本砰。 她就那樣靜靜地躺著碴裙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪点额。 梳的紋絲不亂的頭發(fā)上舔株,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天,我揣著相機(jī)與錄音还棱,去河邊找鬼载慈。 笑死,一個胖子當(dāng)著我的面吹牛珍手,可吹牛的內(nèi)容都是我干的办铡。 我是一名探鬼主播辞做,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寡具!你這毒婦竟也來了秤茅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤童叠,失蹤者是張志新(化名)和其女友劉穎框喳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厦坛,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡帖努,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了粪般。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拼余。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖亩歹,靈堂內(nèi)的尸體忽然破棺而出匙监,到底是詐尸還是另有隱情,我是刑警寧澤小作,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布亭姥,位于F島的核電站,受9級特大地震影響顾稀,放射性物質(zhì)發(fā)生泄漏达罗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一静秆、第九天 我趴在偏房一處隱蔽的房頂上張望粮揉。 院中可真熱鬧,春花似錦抚笔、人聲如沸扶认。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辐宾。三九已至,卻和暖如春膨蛮,著一層夾襖步出監(jiān)牢的瞬間叠纹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工敞葛, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留誉察,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓制肮,卻偏偏與公主長得像冒窍,于是被迫代替她去往敵國和親递沪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容