Spark?集群執(zhí)行任務(wù)失敗的故障處理方法
引言
昨天(2023-02-22)開始發(fā)現(xiàn)公司 Spark 集群上出現(xiàn)一些任務(wù)執(zhí)行時(shí)間過長最后失敗,具體表現(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)的問題跟“host.containers.internal”有關(guān)系。
背景說明:我們的 Spark 集群是運(yùn)行在 podman 容器里的,而且是在非 root 用戶下運(yùn)行。
經(jīng)過在互聯(lián)網(wǎng)上搜索,發(fā)現(xiàn)這個(gè)主機(jī)名是容器分配給內(nèi)部進(jìn)程用來連接容器所在主機(jī)自身的。再進(jìn)一步查看 podman 參考文檔,按照里面的說法,僅當(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ù)并沒有起作用?但是用 podman inspect xxx | grep NetworkMode
命令查看容器得到的結(jié)果是:
"NetworkMode": "host"
不懂,先把這個(gè)放到一邊,那么如何訪問 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)文章
SpringBoot開發(fā)實(shí)戰(zhàn)之自動(dòng)配置
SpringBoot的核心就是自動(dòng)配置,自動(dòng)配置又是基于條件判斷來配置Bean,下面這篇文章主要給大家介紹了關(guān)于SpringBoot開發(fā)實(shí)戰(zhàn)之自動(dòng)配置的相關(guān)資料,需要的朋友可以參考下2021-08-08解決Springboot集成Redis集群配置公網(wǎng)IP連接報(bào)私網(wǎng)IP連接失敗問題
在Springboot 集成 Redis集群配置公網(wǎng)IP連接報(bào)私網(wǎng)IP連接失敗,一直報(bào)私有IP連接失敗,所以本文小編給大家介紹了如何解決報(bào)錯(cuò)問題,如果有遇到相同問題的同學(xué),可以參考閱讀本文2023-10-10Java中IO流 RandomAccessFile類實(shí)例詳解
這篇文章主要介紹了Java中IO流 RandomAccessFile類實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05Java C++題解leetcode1620網(wǎng)絡(luò)信號(hào)最好的坐標(biāo)
這篇文章主要為大家介紹了Java C++題解leetcode1620網(wǎng)絡(luò)信號(hào)最好的坐標(biāo)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01