Spark調(diào)優(yōu)應(yīng)該怎么做-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)Spark調(diào)優(yōu)應(yīng)該怎么做,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶提供超值的營(yíng)銷(xiāo)型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營(yíng)銷(xiāo)型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶提供了網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。

死鎖的問(wèn)題通過(guò)分析死鎖日志文件解決了,由于上面一塊錯(cuò)誤的認(rèn)識(shí)。一直認(rèn)為兩個(gè)非索引可以命中單條記錄,其實(shí)mysql為了性能命中了多條。

一個(gè)簡(jiǎn)單的update語(yǔ)句,update?whereid1=1andid2=2id1和id2都是非索引,這時(shí)有的語(yǔ)句會(huì)對(duì)因?yàn)閮?yōu)化導(dǎo)致上鎖其他索引周邊的數(shù)據(jù)條目,這時(shí)他會(huì)等待內(nèi)建索引的鎖,而同樣的語(yǔ)句會(huì)對(duì)內(nèi)建索引加鎖,等待id1或者id2的鎖,出現(xiàn)同一條語(yǔ)句回環(huán)等待鎖的釋放,導(dǎo)致死鎖發(fā)生。

以后還是需要多看一些數(shù)據(jù)庫(kù)方面的書(shū)籍,對(duì)原理性知識(shí)了解的更多一些。

Spark中主要進(jìn)程的作用?

Driver進(jìn)程:負(fù)責(zé)任務(wù)的分發(fā)和結(jié)果的回收。

Executor進(jìn)程:負(fù)責(zé)具體任務(wù)的執(zhí)行。

Master進(jìn)程:Spark資源管理的主進(jìn)程,負(fù)責(zé)資源調(diào)度。

Worker進(jìn)程:Spark資源管理的從進(jìn)程,woker節(jié)點(diǎn)主要運(yùn)行Executor

如何選擇一種最合適的持久化策略?

默認(rèn)情況下,性能高的當(dāng)然是MEMORY_ONLY,但前提是你的內(nèi)存必須足夠足夠大,可以綽綽有余地存放下整個(gè)RDD的所有數(shù)據(jù)。因?yàn)椴贿M(jìn)行序列化與反序列化操作,就避免了這部分的性能開(kāi)銷(xiāo);對(duì)這個(gè)RDD的后續(xù)算子操作,都是基于純內(nèi)存中的數(shù)據(jù)的操作,不需要從磁盤(pán)文件中讀取數(shù)據(jù),性能也很高;而且不需要復(fù)制一份數(shù)據(jù)副本,并遠(yuǎn)程傳送到其他節(jié)點(diǎn)上。但是這里必須要注意的是,在實(shí)際的生產(chǎn)環(huán)境中,恐怕能夠直接用這種策略的場(chǎng)景還是有限的,如果RDD中數(shù)據(jù)比較多時(shí)(比如幾十億),直接用這種持久化級(jí)別,會(huì)導(dǎo)致JVM的OOM內(nèi)存溢出異常。

如果使用MEMORY_ONLY級(jí)別時(shí)發(fā)生了內(nèi)存溢出,那么建議嘗試使用MEMORY_ONLY_SER級(jí)別。該級(jí)別會(huì)將RDD數(shù)據(jù)序列化后再保存在內(nèi)存中,此時(shí)每個(gè)partition僅僅是一個(gè)字節(jié)數(shù)組而已,大大減少了對(duì)象數(shù)量,并降低了內(nèi)存占用。這種級(jí)別比MEMORY_ONLY多出來(lái)的性能開(kāi)銷(xiāo),主要就是序列化與反序列化的開(kāi)銷(xiāo)。但是后續(xù)算子可以基于純內(nèi)存進(jìn)行操作,因此性能總體還是比較高的。此外,可能發(fā)生的問(wèn)題同上,如果RDD中的數(shù)據(jù)量過(guò)多的話,還是可能會(huì)導(dǎo)致OOM內(nèi)存溢出的異常。

如果純內(nèi)存的級(jí)別都無(wú)法使用,那么建議使用MEMORY_AND_DISK_SER策略,而不是MEMORY_AND_DISK策略。因?yàn)榧热坏搅诉@一步,就說(shuō)明RDD的數(shù)據(jù)量很大,內(nèi)存無(wú)法完全放下。序列化后的數(shù)據(jù)比較少,可以節(jié)省內(nèi)存和磁盤(pán)的空間開(kāi)銷(xiāo)。同時(shí)該策略會(huì)優(yōu)先盡量嘗試將數(shù)據(jù)緩存在內(nèi)存中,內(nèi)存緩存不下才會(huì)寫(xiě)入磁盤(pán)。

通常不建議使用DISK_ONLY和后綴為_(kāi)2的級(jí)別:因?yàn)橥耆诖疟P(pán)文件進(jìn)行數(shù)據(jù)的讀寫(xiě),會(huì)導(dǎo)致性能急劇降低,有時(shí)還不如重新計(jì)算一次所有RDD。后綴為_(kāi)2的級(jí)別,必須將所有數(shù)據(jù)都復(fù)制一份副本,并發(fā)送到其他節(jié)點(diǎn)上,數(shù)據(jù)復(fù)制以及網(wǎng)絡(luò)傳輸會(huì)導(dǎo)致較大的性能開(kāi)銷(xiāo),除非是要求作業(yè)的高可用性,否則不建議使用。

看完上述內(nèi)容,你們對(duì)Spark調(diào)優(yōu)應(yīng)該怎么做有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

本文標(biāo)題:Spark調(diào)優(yōu)應(yīng)該怎么做-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://bm7419.com/article18/goddp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、Google、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、面包屑導(dǎo)航、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司