3.2 Spark Streaming 性能調(diào)優(yōu)(二): 解決task傾斜

目錄
1.系統(tǒng)架構(gòu)
2.環(huán)境搭建
2.1本地環(huán)境下kafka批量導(dǎo)入數(shù)據(jù)
2.2 kafka-manager的安裝與配置
3.1 Spark Streaming 性能調(diào)優(yōu)(一): 解決并行度
3.2 Spark Streaming 性能調(diào)優(yōu)(二): 解決task傾斜
前一篇文章解決了task數(shù)據(jù)傾斜的問(wèn)題, 但是將代碼提交放到集群環(huán)境上測(cè)試的時(shí)候卻發(fā)現(xiàn), 性能并沒(méi)有多大改善, 但是通過(guò)Spark ui可以看到, 各個(gè)task分配到的數(shù)據(jù)量確實(shí)是比較平均的, 而奇怪的就在于, 這些數(shù)據(jù)量平均的task卻都集中在某一兩臺(tái)機(jī)器上運(yùn)行了.

task傾斜

上面我遇到的這種情況其實(shí)就task傾斜, 各個(gè)task的數(shù)據(jù)量很平均, 但都集中在某一兩機(jī)器上, 導(dǎo)致這一兩臺(tái)機(jī)器性能被榨干, 其他機(jī)器在圍觀.
之后經(jīng)過(guò)了幾天理解Spark的task分配機(jī)制, 最后終于發(fā)現(xiàn), 我目前遇到的task傾斜都是由于Spark的數(shù)據(jù)本地化特性導(dǎo)致的.(/(ㄒoㄒ)/~~)

數(shù)據(jù)本地化

數(shù)據(jù)本地化有3個(gè)級(jí)別:

  • PROCESS_LOCAL: 該級(jí)別由參數(shù)spark.locality.wait.process指定
  • NODE_LOCAL: 該級(jí)別由參數(shù)spark.locality.wait.node指定
  • RACK_LOCAL: 該級(jí)別由參數(shù)spark.locality.wait.rack指定

上面三個(gè)參數(shù), 如果不指定值的話, 則默認(rèn)取值于參數(shù)spark.locality.wait的值, 該值默認(rèn)為3s

Spark在task的調(diào)度過(guò)程中, 會(huì)優(yōu)化把task分配給持有數(shù)據(jù)/緩存的同一個(gè)executor進(jìn)程, 如果executor進(jìn)程正在執(zhí)行別的任務(wù), 則會(huì)等待spark.locality.wait.process秒, 如果等待了這么多秒之后該executor還是不可用, 則數(shù)據(jù)本地化程度降低一級(jí), 選擇分配到統(tǒng)一節(jié)點(diǎn)的其他executor進(jìn)程, 如果還是不可用, 則選擇同一個(gè)集群的其他executor.

加入通過(guò)spark ui的executor頁(yè)發(fā)現(xiàn)某個(gè)executor的數(shù)據(jù)input量特別大, 則極有可能會(huì)發(fā)生task傾斜.

解決辦法

解決辦法其實(shí)就是適當(dāng)降低數(shù)據(jù)本地化參數(shù)的值, 具體的值是多少需要視實(shí)際情況.
由于我公司的集群可以開(kāi)16個(gè)executor, 而發(fā)生task傾斜的時(shí)候每個(gè)task運(yùn)行時(shí)間大概也就2~3s, 所以我設(shè)置了spark.locality.wait.process=200ms, spark.locality.wait.node=200ms, 其他用默認(rèn)值.

修改配置參數(shù)后重新提交spark程序, 確實(shí)集群的資源終于能利用起來(lái)了, 原本要1分鐘的窗口間隔, 要跑1min~1.5min, 現(xiàn)在只需30~40s就跑完了, 終于不會(huì)再出現(xiàn)延時(shí)嚴(yán)重的情況了!!!
((≧▽≦)/啦啦啦)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末义锥,一起剝皮案震驚了整個(gè)濱河市违柏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌精居,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慢宗,死亡現(xiàn)場(chǎng)離奇詭異恒傻,居然都是意外死亡走搁,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門筛武,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)缝其,“玉大人,你說(shuō)我怎么就攤上這事徘六∧诒撸” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵硕噩,是天一觀的道長(zhǎng)假残。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么辉懒? 我笑而不...
    開(kāi)封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任阳惹,我火速辦了婚禮,結(jié)果婚禮上眶俩,老公的妹妹穿的比我還像新娘莹汤。我一直安慰自己,他們只是感情好颠印,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布纲岭。 她就那樣靜靜地躺著,像睡著了一般线罕。 火紅的嫁衣襯著肌膚如雪止潮。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天钞楼,我揣著相機(jī)與錄音喇闸,去河邊找鬼。 笑死询件,一個(gè)胖子當(dāng)著我的面吹牛燃乍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宛琅,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼刻蟹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了嘿辟?” 一聲冷哼從身側(cè)響起舆瘪,我...
    開(kāi)封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仓洼,沒(méi)想到半個(gè)月后介陶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡色建,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年哺呜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箕戳。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡某残,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出陵吸,到底是詐尸還是另有隱情玻墅,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布壮虫,位于F島的核電站澳厢,受9級(jí)特大地震影響环础,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜剩拢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一线得、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧徐伐,春花似錦贯钩、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至性穿,卻和暖如春勺三,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背需曾。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工檩咱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胯舷。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像绊含,于是被迫代替她去往敵國(guó)和親桑嘶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容