Spark?集群執(zhí)行任務(wù)失敗的故障處理方法
引言
昨天(2023-02-22)開(kāi)始發(fā)現(xiàn)公司 Spark 集群上出現(xiàn)一些任務(wù)執(zhí)行時(shí)間過(guò)長(zhǎng)最后失敗,具體表現(xiàn)包括:
大量執(zhí)行失敗的 Task,最終任務(wù)也是失敗的

- 在 Spark Master 管理界面上看到任務(wù)的 Driver 地址不是真實(shí) IP 地址,而是一個(gè)叫做“host.containers.internal”的主機(jī)名;
- Spark 的 worker 節(jié)點(diǎn)上能觀察到在不停的創(chuàng)建 Java 進(jìn)程,然后進(jìn)程瞬間就結(jié)束了;
- 進(jìn)入 worker 節(jié)點(diǎn)的日志目錄查看日志內(nèi)容,發(fā)現(xiàn)異常信息為連接 “host.containers.internal” 這個(gè)地址失敗。
所以顯然當(dāng)前出現(xiàn)的問(wèn)題跟“host.containers.internal”有關(guān)系。
背景說(shuō)明:我們的 Spark 集群是運(yùn)行在 podman 容器里的,而且是在非 root 用戶(hù)下運(yùn)行。
經(jīng)過(guò)在互聯(lián)網(wǎng)上搜索,發(fā)現(xiàn)這個(gè)主機(jī)名是容器分配給內(nèi)部進(jìn)程用來(lái)連接容器所在主機(jī)自身的。再進(jìn)一步查看 podman 參考文檔,按照里面的說(shuō)法,僅當(dāng)容器運(yùn)行網(wǎng)絡(luò)模式為 slirp4netns,即帶上參數(shù) "--network=slirp4netns" 時(shí),才會(huì)有 host.containers.internal 這個(gè)主機(jī)名。
但我運(yùn)行容器時(shí)帶的參數(shù)是 "--network=host" 啊。
再仔細(xì)看文檔才知道,slirp4netns 模式是非 root 運(yùn)行容器的默認(rèn)模式。按照我遇到的實(shí)際情況,難道我給的 "--network=host" 參數(shù)并沒(méi)有起作用?但是用 podman inspect xxx | grep NetworkMode 命令查看容器得到的結(jié)果是:
"NetworkMode": "host"
不懂,先把這個(gè)放到一邊,那么如何訪(fǎng)問(wèn) host.containers.internal 這個(gè)主機(jī)呢,有兩種方式:
- 參數(shù)改為
"--network=slirp4netns:allow_host_loopback=true" - 修改
/usr/share/containers/containers.conf,修改或添加配置network_cmd_options的值為["allow_host_loopback=true"]
在不修改 --network 參數(shù)的前提下,我用第二種方法試試。
修改配置文件然后重啟各個(gè) worker 容器,故障消失,Spark 任務(wù)能夠順利執(zhí)行完成。但還需要觀察一段時(shí)間。
以上就是Spark 集群執(zhí)行任務(wù)失敗的故障處理方法的詳細(xì)內(nèi)容,更多關(guān)于Spark 集群任務(wù)失敗故障處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java線(xiàn)程池ForkJoinPool實(shí)例解析
這篇文章主要介紹了Java線(xiàn)程池ForkJoinPool實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
SpringBoot+Redis+Lua防止IP重復(fù)防刷攻擊的方法
本文主要介紹了SpringBoot+Redis+Lua防止IP重復(fù)防刷攻擊的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Java反射設(shè)置/獲取對(duì)象屬性值三種方式
這篇文章主要給大家介紹了關(guān)于Java反射設(shè)置/獲取對(duì)象屬性值的三種方式,反射機(jī)制的用途非常多,比如獲取方法,屬性名和屬性值等,甚至可以獲取標(biāo)簽等標(biāo)簽屬性,需要的朋友可以參考下2023-11-11
Spring?Cloud?Gateway服務(wù)網(wǎng)關(guān)限流問(wèn)題及解決
這篇文章主要介紹了Spring?Cloud?Gateway服務(wù)網(wǎng)關(guān)限流問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
關(guān)于java關(guān)鍵字this和super的區(qū)別和理解
這篇文章主要給大家介紹了關(guān)于java關(guān)鍵字this和super的區(qū)別和理解的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
SpringBoot中YAML語(yǔ)法及幾個(gè)注意點(diǎn)說(shuō)明
這篇文章主要介紹了SpringBoot中YAML語(yǔ)法及幾個(gè)注意點(diǎn)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02

