簡體   English   中英

AWS Glue執行者垂死

[英]AWS Glue executors dying

我正在以這種方式從帶有AWS Glue DynamicFrame的S3中讀取實木復合地板文件:

sources = glue_context\
    .create_dynamic_frame\
    .from_options(connection_type="s3",
        connection_options={'paths': source_paths, 'recurse': True,
                            'groupFiles': 'inPartition'},
        format="parquet",
        transformation_ctx="source")

完成此操作后,我將為Spark DF轉換DynamicFrame,以應用特定的Spark功能。 最后,將這些結果再次包裝到DynamicFrame中,並使用它寫入Redshift。

發生的是執行者由於

WARN TaskSetManager: Lost task in stage ExecutorLostFailure (executor exited caused by one of the running tasks) 
Reason: Container killed by YARN for exceeding memory limits. 5.5 GB of 5.5 GB physical memory used. 
Consider boosting spark.yarn.executor.memoryOverhead.

此行為也可以從AWS Glue指標中發現:

在此處輸入圖片說明

我已經讀過這篇文章 ,不幸的是使用JDBC源(在我的情況下為S3),建議在任何地方使用Glue DynamicFrames。 但不幸的是,我確實需要使用Spark DF進行特定的數據轉換。

我該如何解決由於memoryOverhead而不斷死亡的執行程序的問題? 是Spark相關還是Glue?

調整Spark配置可能會有所幫助。

我曾期望使用諸如AWS Glue之類的工具來調優Spark參數不是必需的,並且該工具已由平台處理,但是不幸的是,事實並非如此。

我使用此語法將參數傳遞給膠水作業

密鑰 :-- --conf spark.yarn.executor.memoryOverhead=2g

此外,引入一些緩存邏輯和重新分區有助於使執行者保持忙碌狀態。 緩存唯一的問題是OOM,可以通過傳遞spark.yarn.executor.memoryOverhead=2g參數來解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM