本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Glue 開發端點如何搭配 SageMaker 筆記本使用
存取開發端點的常見方法之一是在 SageMaker 筆記本上使用 Jupyter
下列文字流排說明每個元件的運作方式:
AWS Glue SageMaker 筆記本:(Jupyter → SparkMagic) → (網路) → AWS Glue 開發端點:(Apache Livy → Apache Spark)
一旦您在 Jupyter 筆記本上執行在每個段落中編寫的 Spark 指令碼,Spark 程式碼就會透過 SparkMagic 提交到 Livy 伺服器,然後一個名為 "livy-session-N" 的 Spark 任務會在 Spark 叢集上執行。這個任務叫做 Livy 工作階段。Spark 任務將在筆記本工作階段處於活動狀態時執行。當您從筆記本關閉 Jupyter 核心或工作階段逾時時,Spark 任務將會終止。每個筆記本 (.ipynb) 檔案啟動一個 Spark 任務。
您可以使用單一 AWS Glue 開發端點來搭配多個 SageMaker 筆記本執行個體。您可以在每個 SageMaker 筆記本執行個體中建立多個筆記本檔案。當您開啟每個筆記本檔案並執行段落時,會透過 SparkMagic 在 Spark 叢集上每個筆記本檔案的 Livy 工作階段啟動。每個 Livy 工作階段對應於單個 Spark 任務。
AWS Glue 開發端點和 SageMaker 筆記本的預設行為
Spark 任務是根據 Spark 設定
依預設,Spark 根據 Spark 叢集組態配置叢集資源給 Livy 工作階段。在 AWS Glue 開發端點中,叢集組態取決於工作者類型。下面是一個資料表,它解釋了每個工作者類型的常見組態。
標準 | G.1X | G.2X | |
---|---|---|---|
spark.driver.memory
|
5G | 10G | 20G |
spark.executor.memory
|
5G | 10G | 20G |
spark.executor.cores
|
4 | 8 | 16 |
spark.dynamicAllocation.enabled
|
TRUE | TRUE | TRUE |
Spark 執行器的最大數量由 DPU (或 NumberOfWorkers
) 和工作者類型自動計算。
標準 | G.1X | G.2X | |
---|---|---|---|
最大 Spark 執行器數量 |
(DPU - 1) * 2 - 1
|
(NumberOfWorkers - 1)
|
(NumberOfWorkers - 1)
|
例如,如果您的開發端點有 10 個工作者,並且工作者類型為
G.1X
,那麼您將有 9 個 Spark 執行器,並且整個叢集將有 90G 的執行器記憶體,因為每個執行器都有 10G 的記憶體。
無論指定的工作者類型為何,Spark 動態資源配置都會開啟。如果資料集足夠大,Spark 可以將所有執行器配置給單個 Livy 工作階段,因為預設未設定 spark.dynamicAllocation.maxExecutors
。這代表同一個開發端點上的其他 Livy 工作階段將等待啟動新的執行器。如果資料集很小,Spark 將能夠同時將執行器配置給多個 Livy 工作階段。
注意
如需有關如何在不同的使用案例中配置資源,以及如何設定組態來修改行為的詳細資訊,請參閱 進階組態:在多個使用者之間共用開發端點。