在使用 Apache Spark 的時候,作業(yè)會以分布式的方式在不同的節(jié)點上運行;特別是當集群的規(guī)模很大時,集群的節(jié)點出現(xiàn)各種問題是很常見的,比如某個磁盤出現(xiàn)問題等。我們都知道 ApacheSpark 是一個高性能、容錯的分布式計算框架,一旦它知道某個計算所在的機器出現(xiàn)問題(比如磁盤故障),它會依據(jù)之前生成的 lineage 重新調(diào)度這個 Task。
創(chuàng)新互聯(lián)建站成都企業(yè)網(wǎng)站建設服務,提供網(wǎng)站設計、成都網(wǎng)站建設網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設計,響應式網(wǎng)站設計,網(wǎng)頁設計師打造企業(yè)風格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務。歡迎咨詢做網(wǎng)站需要多少錢:18982081108
我們現(xiàn)在來考慮下下面的場景:
? 有個節(jié)點上的磁盤由于某些原因出現(xiàn)間歇性故障,導致某些扇區(qū)不能被讀取。假設我們的 Spark 作業(yè)需要的數(shù)據(jù)正好就在這些扇區(qū)上,這將會導致這個 Task 失敗。
? 這個作業(yè)的 Driver 獲取到這個信息,知道 Task 失敗了,所以它會重新提交這個 Task。
? Scheduler 獲取這個請求之后,它會考慮到數(shù)據(jù)的本地性問題,所以很可能還是把這個 Task 分發(fā)到上述的機器,因為它并不知道上述機器的磁盤出現(xiàn)了問題。
? 因為這個機器的磁盤出現(xiàn)問題,所以這個 Task 可能一樣失敗。然后 Driver 重新這些操作,最終導致了 Spark 作業(yè)出現(xiàn)失敗!
上面提到的場景其實對我們?nèi)藖碚f可以通過某些措施來避免。但是對于 Apache Spark 2.2.0 版本之前是無法避免的,不過高興的是,來自 Cloudera 的工程師解決了這個問題:引入了黑名單機制 Blacklist(詳情可以參見SPARK-8425,具體的設計文檔參見Design Doc for Blacklist Mechanism),并且隨著 Apache Spark 2.2.0 版本發(fā)布,不過目前還處于實驗性階段。
黑名單機制其實是通過維護之前出現(xiàn)問題的執(zhí)行器(Executors)和節(jié)點(Hosts)的記錄。當某個任務(Task)出現(xiàn)失敗,那么黑名單機制將會追蹤這個任務關聯(lián)的執(zhí)行器以及主機,并記下這些信息;當在這個節(jié)點調(diào)度任務出現(xiàn)失敗的次數(shù)超過一定的數(shù)目(默認為2),那么調(diào)度器將不會再將任務分發(fā)到那臺節(jié)點。調(diào)度器甚至可以殺死那臺機器對應的執(zhí)行器,這些都可以通過相應的配置實現(xiàn)。
我們可以通過 Apache Spark WEB UI 界面看到執(zhí)行器的狀態(tài)(Status):如果執(zhí)行器處于黑名單狀態(tài),你可以在頁面上看到其狀態(tài)為 Blacklisted ,否則為 Active。如下圖所示:
擁有了黑名單機制之后,上面場景的問題就可以很好的解決。
目前黑名單機制可以通過一系列的參數(shù)來控制,主要如下:
因為黑名單機制目前還處于實驗性狀態(tài),所以上面的一些參數(shù)可能會在后面的 Spark 中有所修改。
結語
感謝您的觀看,如有不足之處,歡迎批評指正。
如果有對大數(shù)據(jù)感興趣的小伙伴或者是從事大數(shù)據(jù)的老司機可以加群:
658558542
歡迎大家交流分享,學習交流,共同進步。(里面還有大量的免費資料,幫助大家在成為大數(shù)據(jù)工程師,乃至架構師的路上披荊斬棘?。?/p>
最后祝福所有遇到瓶頸的大數(shù)據(jù)程序員們突破自己,祝福大家在往后的工作與面試中一切順利。
當前文章:ApacheSpark黑名單(Blacklist)機制介紹
鏈接分享:http://www.rwnh.cn/article40/jepieo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計、網(wǎng)站營銷、營銷型網(wǎng)站建設、域名注冊、Google、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)