AWS胶水开发端点如何配合 SageMaker 笔记本 - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS胶水开发端点如何配合 SageMaker 笔记本

访问开发端点的常用方式之一是使用 杜松子酒 于 SageMaker 笔记本。Jupyter笔记本是一款开源Web应用程序,广泛应用于可视化、分析、机器学习等。AWS胶水 SageMaker 笔记本为您提供带有AWSGlue开发端点的Jupyter笔记本体验。在AWS胶水中 SageMaker 笔记本,Jupyter笔记本环境预配置了 SparkMagic,一个开源Jupyter插件,用于将Spark作业提交给远程Spark群集。Apache常春藤 是一项通过RESTAPI启用与远程Spark群集交互的服务。在AWS胶水中 SageMaker 笔记本, SparkMagic 配置为对照在AWSGlue开发端点上运行的Livy服务器调用RESTAPI。

以下文本流程说明了每个组件的工作方式:

AWS胶水 SageMaker 笔记本: (Jupyter→ SparkMagic)→(网络)→AWSGlue开发端点: (ApacheLevy→ApacheSpark)

在Jupyter笔记本上运行每个段落中编写的Spark脚本后,Spark代码将通过 SparkMagic,则名为"livy-session-N"的Spark作业在Spark群集上运行。此作业称为Levy会话。当笔记本会话处于活动状态时,Spark作业将运行。当您从笔记本关闭Jupyter内核或会话超时时,Spark作业将终止。每个笔记本(.ipynb)文件启动一个Spark作业。

您可以使用一个AWSGlue开发端点和多个 SageMaker 笔记本实例。您可以在每个 SageMaker 笔记本实例。打开每个笔记本文件并运行段落时,会通过 SparkMagic。每个Levy会话对应于单个Spark作业。

AWS胶水开发端点和 SageMaker 笔记本

Spark作业基于 火花配置. 有多种方式可以设置Spark配置(例如,Spark群集配置、 SparkMagic的配置等)。

默认情况下,Spark会根据Spark群集配置将群集资源分配给Levy会话。在AWSGlue开发端点中,群集配置取决于工作类型。此处有一个表格,解释了每个职工类型的常见配置。

标准 G.1倍 G.2倍
spark.driver.memory 5用 10用 20G和20G
spark.executor.memory 5用 10用 20G和20G
spark.executor.cores 4 8 16
spark.dynamicAllocation.enabled TRUE TRUE TRUE

通过组合DPU(或 NumberOfWorkers)和工人类型。

标准 G.1倍 G.2倍
最大Spark执行器的数量 (DPU - 1) * 2 - 1 (NumberOfWorkers - 1) (NumberOfWorkers - 1)

例如,如果您的开发端点有10名员工,并且员工类型是 G.1X,然后您将有9个Spark执行器,整个群集将有90G的执行器内存,因为每个执行器将有10G的内存。

无论指定的工作单位类型如何,Spark动态资源分配都将启用。如果数据集足够大,Spark可以将所有执行程序分配给单个Levy会话,因为 spark.dynamicAllocation.maxExecutors 默认情况下未设置。这意味着同一开发端点上的其他Levy会话将等待启动新的执行器。如果数据集较小,Spark将能够同时将执行程序分配给多个Levy会话。

注意

有关在不同用例中如何分配资源以及如何设置配置以修改行为的更多信息,请参阅 高级配置: 在多个用户之间共享开发端点.