




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
主講:張義目錄0102緩存數(shù)據(jù)緩存容錯(cuò)緩存數(shù)據(jù)1緩存數(shù)據(jù)一般從文本文件或數(shù)據(jù)庫(kù)讀取數(shù)據(jù)或通過(guò)轉(zhuǎn)換另一個(gè)RDD來(lái)創(chuàng)建RDD。在Spark的懶惰執(zhí)行策略下,只有當(dāng)RDD的動(dòng)作方法被調(diào)用時(shí),才會(huì)創(chuàng)建一個(gè)RDD,此時(shí)從其父級(jí)RDD創(chuàng)建RDD。Spark在RDD的譜系樹(shù)中執(zhí)行所有必要的轉(zhuǎn)換,以獲得調(diào)用動(dòng)作所需的RDD。緩存數(shù)據(jù)緩存是Spark計(jì)算的一大特點(diǎn)——一旦RDD被緩存,使用RDD的后續(xù)操作可以比從頭開(kāi)始創(chuàng)建RDD的操作快很多倍(通常是10倍或更多)。通過(guò)將計(jì)算的中間結(jié)果或表數(shù)據(jù)保存在內(nèi)存中,Spark可以節(jié)省重新計(jì)算RDD或從磁盤(pán)加載數(shù)據(jù)的時(shí)間。緩存數(shù)據(jù)當(dāng)緩存RDD時(shí),Spark分區(qū)存儲(chǔ)在計(jì)算分區(qū)節(jié)點(diǎn)的內(nèi)存或磁盤(pán)上。隨后,在這些分區(qū)之上執(zhí)行的任何操作都不需要Spark重新計(jì)算分區(qū)。Spark使用延遲執(zhí)行模型,這意味著當(dāng)?shù)诙ǖ谌┐问褂孟嗤腞DD時(shí),Spark默認(rèn)會(huì)重新計(jì)算RDD。迭代算法經(jīng)常遍歷相同的數(shù)據(jù),因此,這是一種反復(fù)讀取相同數(shù)據(jù)的低效的方法。緩存數(shù)據(jù)在默認(rèn)情況下,每次對(duì)轉(zhuǎn)換的RDD執(zhí)行動(dòng)作時(shí),都會(huì)重新計(jì)算。通過(guò)cache或persist方法將內(nèi)存中的RDD持久化,可以讓Spark更快地訪(fǎng)問(wèn)相同的RDD。下面是一個(gè)簡(jiǎn)單的例子,其對(duì)resultRDD計(jì)算了兩次,首先執(zhí)行count動(dòng)作,然后執(zhí)行collect動(dòng)作:valresult=input.map(x=>x*x)println(result.count())println(result.collect()(.mkstring(","))緩存數(shù)據(jù)以下是另一個(gè)例子,用來(lái)說(shuō)明Spark執(zhí)行動(dòng)作的方式。vallogs=sc.textFile("path/to/log-files")valerrorLogs=logsfilter{l=>l.contains("ERROR")}valwarningLogs=logsfilter{l=>l.contains("WARN")}valerrorCount=errorLogs.countvalwarningcount=warningLogs.countcount動(dòng)作被調(diào)用兩次,每次被調(diào)用時(shí),它從磁盤(pán)讀取源文本文件。當(dāng)調(diào)用errorLogs.count和warningLogs.count時(shí),Spark從文本文件讀取數(shù)據(jù)。緩存數(shù)據(jù)Spark讓?xiě)?yīng)用程序?qū)DD緩存在內(nèi)存中。在緩存RDD時(shí),Spark將其存儲(chǔ)在執(zhí)行器的內(nèi)存中,而不是驅(qū)動(dòng)程序的內(nèi)存中。RDD為分布式數(shù)據(jù)集,執(zhí)行器對(duì)RDD的某些分區(qū)執(zhí)行計(jì)算。所以,每個(gè)執(zhí)行器都會(huì)存儲(chǔ)它正在處理的RDD分區(qū)。緩存數(shù)據(jù)當(dāng)緩存RDD時(shí),Spark不會(huì)立即計(jì)算RDD并將其存儲(chǔ)在內(nèi)存中,因?yàn)樗裱舆t執(zhí)行策略。但是,當(dāng)?shù)谝淮卧诰彺娴腞DD上調(diào)用動(dòng)作時(shí),Spark會(huì)將RDD保存在內(nèi)存中。應(yīng)用程序的任何后續(xù)操作都可以從該緩存受益,因?yàn)樗鼈儾恍枰匦掠?jì)算RDD,例如從我們的示例中讀取文本文件中的數(shù)據(jù),或者從父級(jí)RDD生成RDD等。這意味著多次重復(fù)使用相同數(shù)據(jù)的應(yīng)用程序可以從緩存RDD中獲益。緩存容錯(cuò)2緩存容錯(cuò)緩存的主要目的是加快使用相同RDD的計(jì)算,同時(shí)也提供容錯(cuò)功能。如果RDD的任何分區(qū)丟失,Spark可以自動(dòng)重新計(jì)算。當(dāng)具有緩存的RDD分區(qū)的節(jié)點(diǎn)崩潰時(shí),Spark應(yīng)用程序繼續(xù)運(yùn)行,不會(huì)有任何問(wèn)題。一旦Spark重新計(jì)算丟失的分區(qū),它會(huì)將重新創(chuàng)建的分區(qū)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025汽車(chē)買(mǎi)賣(mài)合同的范本
- 2025年金屬緊固件、金屬釘項(xiàng)目建議書(shū)
- 2025年顯示、記錄系統(tǒng)合作協(xié)議書(shū)
- 2025居間服務(wù)合同在貸款公司間的應(yīng)用
- 2025年婦幼保健院康復(fù)試題
- 2025年聚烯烴及改性材料合作協(xié)議書(shū)
- 2025年高性能鐵氧體一次料合作協(xié)議書(shū)
- 2025年碳二餾份加氫催化劑合作協(xié)議書(shū)
- 2025年雕刻雕銑設(shè)備控制系統(tǒng)合作協(xié)議書(shū)
- 2025年劇裝道具相關(guān)工藝美術(shù)品項(xiàng)目建議書(shū)
- 二方審核計(jì)劃
- DB62∕T 3176-2019 建筑節(jié)能與結(jié)構(gòu)一體化墻體保溫系統(tǒng)應(yīng)用技術(shù)規(guī)程
- 優(yōu)秀病例演講比賽PPT
- 吉林省礦產(chǎn)資源概況及分布
- 最新肺結(jié)核診斷和治療指南
- 公司員工基本禮儀培訓(xùn)ppt完整版課件
- 工程項(xiàng)目綜合應(yīng)急預(yù)案(通用版)
- 半橋LLC諧振變換器設(shè)計(jì)與仿真
- 常見(jiàn)食物的性味歸經(jīng)附表
- 城市橋梁工程竣工驗(yàn)收
- NB_T 10393-2020《海上風(fēng)電場(chǎng)工程施工安全技術(shù)規(guī)范》_(高清最新)
評(píng)論
0/150
提交評(píng)論