如何解析SparkStreaming推測機(jī)制

本篇文章給大家分享的是有關(guān)如何解析SparkStreaming推測機(jī)制,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創(chuàng)新互聯(lián)秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),成都網(wǎng)站建設(shè)、網(wǎng)站制作,微信小程序開發(fā),網(wǎng)頁設(shè)計(jì)制作,成都手機(jī)網(wǎng)站制作成都全網(wǎng)營銷幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級(jí)專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對(duì)客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長。

什么是推測機(jī)制?

如果有很多個(gè)task都在運(yùn)行,很多task一下就完成了自己的任務(wù),但是有一個(gè)task運(yùn)行的很慢。在實(shí)時(shí)計(jì)算任務(wù)中,如果對(duì)實(shí)時(shí)性要求比較高,就算是兩三秒也要在乎這些。

所以在sparkstreaming中有一個(gè)推測機(jī)制專門來解決這個(gè)運(yùn)行的很慢的task。

如何解析SparkStreaming推測機(jī)制

每隔一段時(shí)間來檢查有哪些正在運(yùn)行的task需要重新調(diào)度,假設(shè)總的task有10個(gè),成功運(yùn)行的task數(shù)量>0.75x10,正在運(yùn)行的task的運(yùn)行時(shí)間>1.5x成功運(yùn)行task的平均時(shí)間,則這個(gè)正在運(yùn)行的task需要重新等待調(diào)度。

但是這里有一個(gè)很嚴(yán)重的問題,最開始自學(xué)的時(shí)候發(fā)現(xiàn)了,接著在看一些機(jī)構(gòu)視頻里面也有講到這個(gè)問題。

這個(gè)問題就是如果這個(gè)正在運(yùn)行的task遇到數(shù)據(jù)傾斜怎么辦?

假如有5個(gè)task,有一個(gè)task遇到了數(shù)據(jù)傾斜,但就算遇到數(shù)據(jù)傾斜(稍微有點(diǎn)數(shù)據(jù)傾斜,也沒事),它也會(huì)完成任務(wù),它需要6s,其他4個(gè)任務(wù)只需要1s。那開啟推測機(jī)制后,這個(gè)任務(wù)好不容易運(yùn)行到了2s,快要成功了,但遇到了推測機(jī)制,它就需要重新調(diào)度重新運(yùn)行,下一次運(yùn)行了3s,遇到推測機(jī)制就會(huì)重新運(yùn)行,整個(gè)過程一直在循環(huán),這就是小編要說的問題!

解決

那開啟推測機(jī)制遇到數(shù)據(jù)傾斜,怎么辦?

我們可以采用一些解決數(shù)據(jù)傾斜的辦法,大致講一下關(guān)于數(shù)據(jù)傾斜的幾個(gè)解決方案:

1、如果發(fā)現(xiàn)導(dǎo)致數(shù)據(jù)傾斜的key就幾個(gè),而且對(duì)計(jì)算本身的影響并不大的話,就可以采用過濾少數(shù)導(dǎo)致傾斜的key

2、兩階段聚合,將原本相同的key通過附加隨機(jī)前綴的方式,變成多個(gè)不同的key,就可以讓原本被一個(gè)task處理的數(shù)據(jù)分散到多個(gè)task上去做局部聚合,進(jìn)而解決單個(gè)task處理數(shù)據(jù)量過多的問題。接著去除掉隨機(jī)前綴,再次進(jìn)行全局聚合,就可以得到最終的結(jié)果。但是這個(gè)方法只適用于聚合類的shuffle操作,不適合join類的shuffle操作。

3、對(duì)于join導(dǎo)致的數(shù)據(jù)傾斜,如果只是某幾個(gè)key導(dǎo)致了傾斜,可以將少數(shù)幾個(gè)key分拆成獨(dú)立RDD,并附加隨機(jī)前綴打散成n份去進(jìn)行join,此時(shí)這幾個(gè)key對(duì)應(yīng)的數(shù)據(jù)就不會(huì)集中在少數(shù)幾個(gè)task上,而是分散到多個(gè)task進(jìn)行join了。適用于兩個(gè)數(shù)據(jù)量比較大的表進(jìn)行join。

4、如果在進(jìn)行join操作時(shí),RDD中有大量的key導(dǎo)致數(shù)據(jù)傾斜,那么進(jìn)行分拆key也沒什么意義,此時(shí)就只能使用這一種方案來解決問題了。將原先一樣的key通過附加隨機(jī)前綴變成不一樣的key,然后就可以將這些處理后的“不同key”分散到多個(gè)task中去處理,而不是讓一個(gè)task處理大量的相同key。

以上就是如何解析SparkStreaming推測機(jī)制,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章標(biāo)題:如何解析SparkStreaming推測機(jī)制
文章URL:http://bm7419.com/article36/jdgcpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、做網(wǎng)站、用戶體驗(yàn)面包屑導(dǎo)航、動(dòng)態(tài)網(wǎng)站網(wǎng)站制作

廣告

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

綿陽服務(wù)器托管