Spark學(xué)習(xí)(一)——入門與集群搭建

現(xiàn)在來學(xué)一學(xué)spark這個內(nèi)存計算引擎胳螟,主要應(yīng)用于大規(guī)模數(shù)據(jù)的計算唆垃。

一胁住、簡介

和MapReduce都是計算引擎趁猴,但兩者還是有很大區(qū)別的,MapReduce計算的中間數(shù)據(jù)都是存儲在硬盤上的彪见,而Spark計算的中間數(shù)據(jù)都是存儲在內(nèi)存里的缨叫,除非有說明說讓Spark把中間數(shù)據(jù)存儲到硬盤上。這樣可想而知基于內(nèi)存诽凌,Spark的運行效率就比MapReduce快了許多了矾瑰。

下圖舉例:把這么一座山當(dāng)成是大規(guī)模的數(shù)據(jù),開發(fā)商要把山上的樹用去做桌子就相當(dāng)于做計算酵镜,于是分配工人p們?nèi)ド缴峡硺涞锏铮鄠€不同的工人們在砍樹就相當(dāng)于是在并行計算,這大概就是云計算的思想:計算向數(shù)據(jù)移動淮韭,即移動的計算而不是數(shù)據(jù)垢粮, 最終目的就是提高計算效率。

圖片.png

二靠粪、Spark架構(gòu)

搭建過hadoop集群架構(gòu)蜡吧,也就熟悉了套路,spark集群架構(gòu)也是采用主從架構(gòu)(master主節(jié)點和worker從節(jié)點)占键,master節(jié)點管理著各個worker節(jié)點昔善,從而也就掌握著整個集群的資源。

三捞慌、Spark下載安裝

直接去官網(wǎng)http://spark.apache.org/ 下載耀鸦,不過下載時注意,spark版本要對應(yīng)還hadoop的版本,我的hadoop版本安裝的是2.6.4所以要勾選好對應(yīng)的spark包袖订,目前我選擇的是spark2.4.3搭配hadoop2.6.4氮帐。

四、Spark集群搭建

  • 1洛姑、軟件安裝
    需要用到hadoop上沐,java,scala楞艾,spark参咙,直接把下載好的文件從windows上傳到linux服務(wù)器上,再使用tar -zxvf -C 文件名命令解壓文件硫眯,hadoop和java的安裝我就不提了蕴侧,自行百度。接下來是scala的安裝配置两入,同樣是下載好上傳到linux服務(wù)器然后解壓净宵,之后輸入命令vi /etc/profile修改這個文件把scala的安裝目錄給加進去PATH屬性中,:wq命令保存退出裹纳,再輸入source /etc/profile命令使環(huán)境變量生效择葡,最后輸入命令scala -version查看是否安裝scala成功。
  • 2剃氧、spark環(huán)境配置
    cd /usr/local/spark/conf到此目錄下敏储,找到spark-env.sh.templete文件改個名為spark-env.sh,再加入以下代碼朋鞍,對應(yīng)注釋在里面已添。注意:以下路徑只是我個人電腦路徑,大家自行修改為各自的軟件安裝路徑滥酥。
JAVA_HOME=/usr/java/default     #java安裝路徑
SCALA_HOME=/usr/local/scala   #scala安裝路徑
HADOOP_HOME=/usr/local/hadoop   #hadoop安裝路徑
SPARK_MASTER_PORT=7077   #資源申請端口
SPARK_MASTER_WEBUI_PORT=8888   #對外訪問web界面端口
SPARK_MASTER_IP=10.14.28.100   #spark集群的master節(jié)點的IP地址
SPARK_MASTER_OPTS="-Dspark.worker.timeout=100"   #從節(jié)點發(fā)送心跳給主節(jié)點的超時時間酝碳,使得主節(jié)點才知道從節(jié)點的生存狀態(tài)
SPARK_WORKER_MEMORY=3G   #每個worker節(jié)點最大能分配給executors的內(nèi)存大小
SPARK_WORKER_CORES=2   #每個worker節(jié)點所占有的CPU核數(shù)目
SPARK_WORKER_INSTANCES=1   #每臺機器上開啟的worker節(jié)點的數(shù)目
SPARK_LOCAL_DIRS=/var/spark   #集群運行本地目錄
SPARK_WORKER_DIR="/var/spark/work"   #存放任務(wù)在計算中產(chǎn)生的中間數(shù)據(jù)
SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.appDataTtl=259200"   #開啟自動清空worker工作目錄區(qū)的功能,后面是數(shù)據(jù)有效期
  • 3恨狈、配置spark/conf目錄下的slaves文件,這跟我之前搭建hadoop集群時候一樣寫上管理著的各個slave機器就好呛讲,然后cd /usr/local到目錄下禾怠,使用命令scp -r spark slave1:/usr/local把spark安裝拷貝到slave1機器的同個路徑下,后面同理slave2贝搁、slave3機器吗氏。附:關(guān)于scp拷貝命令的解析
  • 4、之后進入sbin目錄下把start-all.shstop-all.sh腳本名給修改掉雷逆,因為hadoop集群也有這2個腳本弦讽,怕執(zhí)行命令時沖突了。
    圖片.png
  • 5、最后使用命令vi /etc/profile修改PATH環(huán)境變量往产,把spark的bin路徑和sbin路徑加進去被碗,這樣就可以在所有命令下執(zhí)行這個腳本命令了,注意:修改完后要source /etc/profile下仿村,使環(huán)境變量生效锐朴。
  • 6、我把集群所有節(jié)點都啟動起來了蔼囊,包括之前搭建的hadoop集群的yarn和hdfs焚志,截圖如下:
    圖片.png
    圖片.png

五、談?wù)勚鲝募軜?gòu)的單點故障

  • 1畏鼓、什么是單點故障酱酬?
    通常分布式系統(tǒng)采用的是主從架構(gòu),由一個主節(jié)點管理著一堆從節(jié)點云矫,主節(jié)點分發(fā)業(yè)務(wù)膳沽,從節(jié)點處理業(yè)務(wù)。單點故障就是當(dāng)主節(jié)點掛了泼差,整個系統(tǒng)就掛了贵少,這就是由一個主節(jié)點引發(fā)的故障,稱為單點故障堆缘,但如果是一個從節(jié)點掛了對集群對外提供服務(wù)是不會有影響的滔灶。
  • 2、傳統(tǒng)方式解決單點故障
    多加一個備用主節(jié)點吼肥。期間過程如下:
    image.png
    不過上圖會有特殊情況录平,就是當(dāng)由于網(wǎng)絡(luò)震蕩導(dǎo)致主節(jié)點接收數(shù)據(jù)時丟失了一部分,也就是少包缀皱,這會導(dǎo)致備用主節(jié)點誤認(rèn)為主節(jié)點發(fā)生故障了從而頂替了主節(jié)點斗这,導(dǎo)致出現(xiàn)了多主的現(xiàn)象。
  • 3啤斗、使用zookeeper注冊服務(wù)解決單點故障
    分布式鎖主要有zookeeper實現(xiàn)表箭,主節(jié)點在使用時,備用主節(jié)點會被加鎖而阻塞作為備用主節(jié)點钮莲。解決過程如下圖:
    何為分布式鎖免钻?
    就是為了控制多個進程訪問同一個資源時,這個資源能被有序訪問崔拥,主要控制進程的加鎖极舔、解鎖、鎖超時链瓦。
    分布式協(xié)調(diào)可以解決多個進程的同步控制拆魏,主要核心是實現(xiàn)了分布式鎖,而zookeeper是一個分布式協(xié)調(diào)服務(wù)。
    image.png

六渤刃、Spark部署的幾種模式

  • 1拥峦、local(本地模式):常用于本地開發(fā)測試,該模式不會提交任務(wù)導(dǎo)集群中溪掀,只在本節(jié)點執(zhí)行事镣,分為local單線程和local-cluster多線程,不需要啟動Master進程和Worker進程揪胃。有local:只啟動一個executor璃哟、local[k]:啟動k個executorlocal[*]:啟動跟cpu數(shù)目相同的executor喊递。
  • 2随闪、Standalone(集群模式):分布式部署集群,自帶完整服務(wù)骚勘,資源管理和任務(wù)監(jiān)控都是spark自己搞定铐伴。
  • 3、spark on yarn(集群模式):分布式部署集群俏讹,但把資源和任務(wù)監(jiān)控交給yarn管理当宴,spark直連yarn,不需要額外構(gòu)建spark集群泽疆,有yarn-client和yarn-cluster兩種模式户矢,主要區(qū)別在于:Driver程序的運行節(jié)點,即cluster模式的driver運行在集群子節(jié)點殉疼,有容錯功能梯浪,client模式的driver運行在客戶端。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瓢娜,一起剝皮案震驚了整個濱河市挂洛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌眠砾,老刑警劉巖虏劲,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異褒颈,居然都是意外死亡伙单,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門哈肖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人念秧,你說我怎么就攤上這事淤井。” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵币狠,是天一觀的道長游两。 經(jīng)常有香客問我,道長漩绵,這世上最難降的妖魔是什么贱案? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮止吐,結(jié)果婚禮上宝踪,老公的妹妹穿的比我還像新娘。我一直安慰自己碍扔,他們只是感情好瘩燥,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著不同,像睡著了一般厉膀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上二拐,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天服鹅,我揣著相機與錄音,去河邊找鬼百新。 笑死企软,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吟孙。 我是一名探鬼主播澜倦,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杰妓!你這毒婦竟也來了藻治?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤巷挥,失蹤者是張志新(化名)和其女友劉穎桩卵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體倍宾,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡雏节,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了高职。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钩乍。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖怔锌,靈堂內(nèi)的尸體忽然破棺而出寥粹,到底是詐尸還是另有隱情变过,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布涝涤,位于F島的核電站媚狰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏阔拳。R本人自食惡果不足惜崭孤,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望糊肠。 院中可真熱鬧辨宠,春花似錦、人聲如沸罪针。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泪酱。三九已至派殷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間墓阀,已是汗流浹背毡惜。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留斯撮,地道東北人经伙。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像勿锅,于是被迫代替她去往敵國和親帕膜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

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