本篇文章為大家展示了如何理解troubleshooting 錯誤的持久化方式以及checkpoint的使用,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)從2013年創(chuàng)立,先為秦皇島等服務建站,秦皇島等地企業(yè),進行企業(yè)商務咨詢服務。為秦皇島企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
來說下CheckPoint,有時候它對故障會產生效果,它最起效果的時候是什么時候呢?如果緩存BlockManager會根據你的緩存策略去把數(shù)據存到內存或者磁盤!持久化,大多數(shù)時候,都是會正常工作的。但是就怕,有些時候,會出現(xiàn)意外。比如說,緩存在內存中的數(shù)據,可能莫名其妙就丟失掉了。Executor進程掛掉了。或者說,存儲在磁盤文件中的數(shù)據,莫名其妙就沒了,文件被誤刪了。企業(yè)雖然沒碰到過,但是有可能。
出現(xiàn)上述情況的時候,接下來,如果要對這個RDD執(zhí)行某些操作,可能會發(fā)現(xiàn)RDD的某個partition找不到了。對消失的partition重新計算,計算完以后再緩存和使用。有些時候,計算某個RDD,可能是極其耗時的??赡躌DD之前有大量的父RDD。那么如果你要重新計算一個partition,可能要重新計算之前所有的父RDD對應的partition。
這種情況下,就可以選擇對這個RDD進行checkpoint,以防萬一。進行checkpoint,就是說,會將RDD的數(shù)據,持久化一份到容錯的文件系統(tǒng)上(比如hdfs)。在對這個RDD進行計算的時候,如果發(fā)現(xiàn)它的緩存數(shù)據不見了。優(yōu)先就是先找一下有沒有checkpoint數(shù)據(到hdfs上面去找)。如果有的話,就使用checkpoint數(shù)據了。不至于說是去重新計算。
checkpoint,其實就是可以作為是cache的一個備胎。如果cache失效了,checkpoint就可以上來使用了。checkpoint有利有弊,利在于,提高了spark作業(yè)的可靠性,一旦發(fā)生問題,還是很可靠的,不用重新計算大量的rdd;但是弊在于,進行checkpoint操作的時候,也就是將rdd數(shù)據寫入hdfs中的時候,還是會消耗性能的。
checkpoint,用性能換可靠性。先做了緩沖后做了checkpoint,比如到HDFS那就是會從緩存存到HDFS上面進行checkpoint操作!后面我們再對這個RDD進行使用,然后其實它有個組件叫CacheManager,然后CacheManager會到BlockManager上面去找數(shù)據,如果有就通過CacheManager拿到數(shù)據,如果沒有就會從checkpoint的地方去拿數(shù)據
checkpoint原理:
在代碼中,用SparkContext,設置一個checkpoint目錄,可以是一個容錯文件系統(tǒng)的目錄,比如hdfs;
在代碼中,對需要進行checkpoint的rdd,執(zhí)行RDD.checkpoint();
RDDCheckpointData(spark內部的API),接管你的RDD,會標記為marked for checkpoint,準備進行checkpoint
你的job運行完之后,會調用一個finalRDD.doCheckpoint()方法,會順著rdd lineage,回溯掃描,發(fā)現(xiàn)有標記為待checkpoint的rdd,就會進行二次標記,inProgressCheckpoint,正在接受checkpoint操作
job執(zhí)行完之后,就會啟動一個內部的新job,去將標記為inProgressCheckpoint的rdd的數(shù)據,都寫入hdfs文件中。(備注,如果rdd之前cache過,會直接從緩存中獲取數(shù)據,寫入hdfs中;如果沒有cache過,那么就會重新計算一遍這個rdd,再checkpoint)
將checkpoint過的rdd之前的依賴rdd,改成一個CheckpointRDD*,強制改變你的rdd的lineage。后面如果rdd的cache數(shù)據獲取失敗,直接會通過它的上游CheckpointRDD,去容錯的文件系統(tǒng),比如hdfs中,獲取checkpoint的數(shù)據。
說一下checkpoint的使用
SparkContext,設置checkpoint目錄
對RDD執(zhí)行checkpoint操作
上述內容就是如何理解troubleshooting 錯誤的持久化方式以及checkpoint的使用,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章標題:如何理解troubleshooting錯誤的持久化方式以及checkpoint的使用
當前地址:http://aaarwkj.com/article0/gpjjoo.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、Google、企業(yè)網站制作、自適應網站、定制網站、商城網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)