AI助攻!AWS Glue助你快速排查Spark錯誤

Ai




引入生成式AI故障排除功能於AWS Glue中的Apache Spark(預覽)

組織每月運行數百萬個Apache Spark應用程序,以準備、移動和處理數據進行分析和機器學習(ML)。構建和維護這些Spark應用程序是一個反覆的過程,開發人員花費大量時間來測試和排除代碼中的問題。在開發過程中,數據工程師經常需要花幾個小時來篩選日誌文件、分析執行計劃以及進行配置更改以解決問題。由於Spark的分佈式特性、其內存處理模型以及可用的多種配置選項,這一過程在生產環境中變得更加挑戰。排除生產問題需要對日誌和指標進行廣泛分析,這常常導致長時間停機和關鍵數據管道的洞察延遲。

今天,我們很高興地宣布在AWS Glue中推出Apache Spark的生成式AI故障排除功能的預覽。這是一項新功能,使數據工程師和科學家能夠快速識別和解決其Spark應用程序中的問題。該功能使用機器學習和生成式AI技術,提供對失敗的Spark應用程序的自動根本原因分析,以及可行的建議和修復步驟。這篇文章展示了如何使用生成式AI故障排除來調試Spark應用程序。

生成式AI故障排除功能如何運作

對於Spark作業,故障排除功能分析與作業錯誤簽名相關的作業元數據、指標和日誌,以生成全面的根本原因分析。您可以通過在AWS Glue控制台上單擊一次來啟動故障排除和優化過程。這一功能可以將您的平均解決時間從幾天縮短到幾分鐘,優化您的Spark應用程序以提高成本和性能,並使您能夠更專注於從數據中獲取價值。

手動調試Spark應用程序對於數據工程師和ETL開發人員來說可能會遇到一些挑戰:

– Spark的廣泛連接和配置選項使其成為一個受歡迎的數據處理平台,但在配置不正確的情況下,尤其是與資源設置(如S3桶、數據庫、分區、解析列)和訪問權限(角色和密鑰)相關的問題,往往使得根本原因的識別變得困難。
– Spark的內存處理模型和數據集在其工作節點上的分佈雖然有利於並行處理,但經常使得用戶難以識別由於資源耗盡(如內存不足和磁碟異常)引起的故障的根本原因。
– Spark變換的延遲評估雖然有利於性能,但使得準確且快速地從不同執行器發出的分佈式日誌和指標中識別導致故障的應用程序代碼和邏輯變得困難。

接下來,我們將看看一些常見且複雜的Spark故障排除場景,生成式AI故障排除功能可以節省大量手動調試時間,幫助用戶深入分析並找到確切的根本原因。

資源設置或訪問錯誤

Spark應用程序允許從多種資源(如S3桶和數據目錄表中的數據集)整合數據,使用相關作業的IAM角色和KMS密鑰來正確訪問這些資源,並要求這些資源存在並可用於其標識符所引用的正確區域和位置。用戶可能會錯誤配置其應用程序,導致錯誤,這需要深入日誌以了解根本原因。

手動根本原因分析:失敗原因和Spark應用程序日誌

下面的示例顯示了生產作業運行中S3桶的常見設置問題的失敗原因。來自Spark的失敗原因無法幫助理解根本原因或需要檢查的代碼行。

“`
用戶類中的異常:org.apache.spark.SparkException : 作業因階段失敗而中止:階段0.0中的任務0失敗4次,最近的失敗:在階段0.0中丟失任務0.3(TID 3)(172.36.245.14執行器1):com.amazonaws.services.glue.util.NonFatalException:打開文件時出錯:
“`

經過深入分析許多分佈式Spark執行器的日誌後,顯然錯誤是由於S3桶不存在,但錯誤堆棧跟蹤通常很長且被截斷,難以了解精確的根本原因和Spark應用程序中需要修復的位置。

“`
引起:java.io.IOException:com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception:指定的桶不存在(服務:Amazon S3;狀態代碼:404;錯誤代碼:NoSuchBucket;請求ID:80MTEVF2RM7ZYAN9;S3擴展請求ID:AzRz5f/Amtcs/QatfTvDqU0vgSu5+v7zNIZwcjUn4um5iX3JzExd3a3BkAXGwn/5oYl7hOXRBeo=;代理:空),S3擴展請求ID:AzRz5f/Amtcs/QatfTvDqU0vgSu5+v7zNIZwcjUn4um5iX3JzExd3a3BkAXGwn/5oYl7hOXRBeo=
“`

使用生成式AI Spark故障排除:根本原因分析和建議

使用Spark故障排除,您只需單擊失敗作業運行的故障排除分析按鈕,該服務將分析您失敗作業的調試工件,以識別根本原因分析以及您可以檢查的Spark應用程序中的行號,以進一步解決問題。

Spark內存不足錯誤

讓我們看看一個常見但相對複雜的錯誤,這需要大量的手動分析才能得出結論,即Spark作業在Spark驅動程序(主節點)或分佈式Spark執行器之一上內存不足。通常,故障排除需要經驗豐富的數據工程師手動執行以下步驟以識別根本原因。

– 在Spark驅動程序日誌中搜索確切的錯誤消息
– 進入Spark UI以分析內存使用模式
– 審查執行器指標以了解內存壓力
– 分析代碼以識別內存密集型操作

這一過程通常需要數小時,因為Spark的失敗原因通常不難理解,即它是Spark驅動程序上的內存不足問題,以及修復它的補救措施。

手動根本原因分析:失敗原因和Spark應用程序日誌

以下示例顯示了錯誤的失敗原因。

“`
Py4JJavaError:調用o4138.collectToPython時發生錯誤。java.lang.StackOverflowError
“`

Spark驅動程序日誌需要廣泛搜索以找到確切的錯誤消息。在這種情況下,錯誤堆棧跟蹤由超過一百個函數調用組成,難以理解精確的根本原因,因為Spark應用程序突然終止。

“`
py4j.protocol.Py4JJavaError:調用o4138.collectToPython時發生錯誤。
: java.lang.StackOverflowError
at org.apache.spark.sql.catalyst.trees.TreeNode$$Lambda$1942/131413145.get$Lambda(未知來源)
at org.apache.spark.sql.catalyst.trees.TreeNode.$anonfun$mapChildren$1(TreeNode.scala:798)

“`

使用生成式AI Spark故障排除:根本原因分析和建議

使用Spark故障排除,您可以單擊失敗作業運行的故障排除分析按鈕,獲得詳細的根本原因分析,並檢查代碼的行號,同時還提供有關最佳實踐的建議,以優化您的Spark應用程序來修復問題。

Spark磁碟空間不足錯誤

另一種與Spark相關的複雜錯誤模式是當它在Spark應用程序的多個執行器之一上耗盡磁碟存儲時。與Spark的OOM異常類似,手動故障排除需要深入分析分佈式執行器日誌和指標,以了解根本原因並識別導致錯誤的應用程序邏輯或代碼,這是由於Spark對其變換的懶性執行。

手動根本原因分析:失敗原因和Spark應用程序日誌

相關的失敗原因和應用程序日誌中的錯誤堆棧跟蹤再次很長,要求用戶從Spark UI和Spark指標中收集更多見解,以識別根本原因並找到解決方案。

“`
調用o115.parquet時發生錯誤。設備上沒有剩餘空間
“`

“`
py4j.protocol.Py4JJavaError:調用o115.parquet時發生錯誤。
: org.apache.spark.SparkException:作業中止。
at org.apache.spark.sql.errors.QueryExecutionErrors$.jobAbortedError(QueryExecutionErrors.scala:638)

“`

使用生成式AI Spark故障排除:根本原因分析和建議

使用Spark故障排除,它提供了根本原因分析和代碼中數據洗牌操作懶性評估的行號。它還指向有關優化洗牌或寬變換的最佳實踐指南,或在AWS Glue上使用S3洗牌插件。

調試AWS Glue中的Spark作業

要使用此故障排除功能來處理失敗的作業運行,請完成以下步驟:

1. 在AWS Glue控制台上,選擇導航窗格中的ETL作業。
2. 選擇您的作業。
3. 在運行選項卡上,選擇您的失敗作業運行。
4. 選擇使用AI故障排除以開始分析。

您將被重定向到故障排除分析選項卡,生成的分析將顯示。您將看到根本原因分析和建議部分。

該服務分析您的作業的調試工件並提供結果。讓我們看看這在實踐中的真實示例。

考量

在預覽期間,該服務專注於常見的Spark錯誤,如資源設置和訪問問題、Spark驅動程序和執行器上的內存不足異常、Spark執行器上的磁碟空間不足異常,並會清楚指出尚不支持的錯誤類型。您的作業必須運行在AWS Glue版本4.0上。

預覽在所有AWS Glue可用的商業區域內免費提供。當您使用此功能時,您觸發的任何驗證運行以測試建議的解決方案將根據標準AWS Glue定價收費。

結論

這篇文章演示了生成式AI故障排除功能如何幫助您日常的Spark應用程序調試。它通過使用生成式AI自動識別故障的根本原因並提供可行的建議來簡化Spark應用程序的調試過程。

要了解有關此新故障排除功能的更多信息,請訪問使用AI故障排除Spark作業。

特別感謝所有參與Apache Spark在AWS Glue中生成式AI故障排除推出的人員。

關於作者

Noritaka Sekiyama是AWS Glue團隊的首席大數據架構師,負責構建幫助客戶的軟件工件。空閒時間,他喜歡騎自行車。

Vishal Kajjam是AWS Glue團隊的軟件開發工程師,熱衷於分佈式計算和使用ML/AI設計和構建端到端解決方案以滿足客戶的數據集成需求。空閒時間,他喜歡和家人朋友共度時光。

Shubham Mehta是AWS分析部門的高級產品經理,負責推動AWS Glue、Amazon EMR和Amazon MWAA等服務的生成式AI功能開發,利用AI/ML簡化和增強數據從業者在AWS上構建數據應用程序的體驗。

Wei Tang是AWS Glue團隊的軟件開發工程師,對使用分佈式系統和AI/ML解決客戶的重複性問題充滿熱情。

XiaoRun Yu是AWS Glue團隊的軟件開發工程師,負責為AWS Glue構建新特性以幫助客戶。工作之外,XiaoRun喜歡探索灣區的新地方。

Jake Zych是AWS Glue團隊的軟件開發工程師,對分佈式系統和機器學習有深入的興趣。在空閒時間,Jake喜歡創作視頻內容和玩桌遊。

Savio Dsouza是AWS Glue團隊的軟件開發經理,負責開發分佈式系統和數據集成的新接口,以高效管理AWS上的數據湖。

Mohit Saxena是AWS Glue團隊的高級軟件開發經理,專注於構建分佈式系統,使客戶能夠使用交互式和易於使用的界面高效管理和轉換Amazon S3上的PB級數據以及雲中的數據庫和數據倉庫。

以上文章由特價GPT API KEY所翻譯及撰寫。而圖片則由FLUX根據內容自動生成。

🔥 CHATGPT PLUS 帳戶出租

唔使外國信用卡、送埋 VPN,輕鬆即用!

1個月 HK$118|1年 HK$1288|獨立帳號 🎁

💳 支援 PayMe / 轉數快 / Alipay / 信用卡

✨ 我哋亦可以代升級你的帳戶!

🚀 即刻睇詳情

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

🎨 Nano Banana Pro 圖像生成器|打幾句說話就出圖

想畫人像、產品圖、插畫?SSFuture 圖像生成器支援 Flux Gemini Nano Banana Pro 改圖 / 合成, 打廣東話都得,仲可以沿用上一張圖繼續微調。

🆓 Flux 模型即玩,不用登入
🤖 登入後解鎖 Gemini 改圖
📷 支援上載參考圖再生成
⚡ 每天免費額度任你玩
✨ 即刻玩 AI 畫圖
Enhanced AI Image Generation Prompt:

Create a cinematic, studio-quality close-up portrait (9:16 aspect ratio, 4K resolution) of a young East Asian woman on a winter afternoon in Taipei. She stands at the entrance plaza of a bustling shopping mall, bathed in the soft, golden glow of the warm winter sun. She wears a stylish white cocktail dress with a short skirt, her look elegant yet youthful.

Her pose is playful and animated: she raises both hands joyfully above her head, holding a handmade cardboard sign. Written in bold strokes of black marker, the sign reads: "TODAY IS MY BIRTHDAY." Her facial expression is a beautiful blend of joy and gentle shyness—her sparkling eyes and slight blush convey excitement and a touch of bashfulness.

The background subtly hints at the urban Taipei atmosphere, with softly blurred neon signs, modern architecture, and passersby dressed for the season, adding depth and authenticity. Capture delicate details: sunlight warming her skin, the gentle flow of her hair, and the texture of the handwritten sign. The overall mood is warm, festive, and inviting—a true cinematic moment infused with personality and charm.

(四個字是:生日快樂。) 一隻在香港茶餐廳喝奶茶的貓 咒語:
可爱夏日风格,3D卡通主题。俯视角度
垂直俯拍视角的鸟瞰图:矩形深水游泳池铺满整个画面,游泳池周围围了一圈马赛克瓷砖,蠟筆小新微笑和小白闭眼躺浮在水面上,泳池角落漂浮着一只黄色橡皮鸭玩具和一个彩色游泳圈。阳光照射在水面形成波光粼粼的折射效果,高饱和度色彩搭配,超高清分辨率,俯视视角展现完整泳池轮廓,水质清澈,可以看到游泳池底部的瓷砖。高清渲染材质,景深效果明显,画面通透富有层次感,画面色调整体为清新冷色调,8K高清。