操作方法Amazon Glue开发端点与 SageMaker 笔记本电脑配合使用 - Amazon连接词
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

操作方法Amazon Glue开发端点与 SageMaker 笔记本电脑配合使用

访问开发终端节点的常见方法之一是使用Jupyter在 SageMaker 笔记本电脑上。Jupyter 笔记本是一个开源的 Web 应用程序,广泛应用于可视化,分析,机器学习等。一个Amazon GlueSageMaker 笔记本电脑为您提供朱皮特笔记本体验Amazon Glue开发终端节点。在Amazon GlueSageMaker 笔记本电脑,Jupyter 笔记本环境预先配置了闪光魔术,这是一个开源 Jupyter 插件,用于将 Spark 作业提交到远程 Spark 群集。Apache Livy是一种允许通过 REST API 与远程 Spark 群集进行交互的服务。在Amazon GlueSageMaker 笔记本,SparkMagic 被配置为针对运行在Amazon Glue开发终端节点。

以下文本流说明了每个组件的工作原理:

Amazon GlueSageMaker 笔记本电脑:(朱皮特 → 闪光魔术) → (网络) →Amazon Glue开发终端节点:(阿帕奇·利维 → 阿帕奇火花)

在 Jupyter 笔记本上运行在每个段落中编写的 Spark 脚本后,Spark 代码将通过 SparkMagic 提交到 Livy 服务器,然后名为 “Livy-Session N” 的 Spark 作业会在 Spark 群集上运行。这个工作被称为 Livy 会话。Spark 作业将在笔记本会话处于活动状态时运行。当您从笔记本中关闭 Jupyter 内核或会话超时时,Spark 作业将终止。每个笔记本 (.ipynb) 文件启动一个 Spark 作业。

您可以使用单个Amazon Glue开发终端节点与多个 SageMaker 笔记本实例。您可以在每个 SageMaker 笔记本实例中创建多个笔记本文件。当您打开每个笔记本文件并运行段落时,将通过 SparkMagic 在 Spark 群集上的每个笔记本文件启动 Livy 会话。每个 Livy 会话对应于单个 Spark 作业。

默认行为Amazon Glue开发端点和 SageMaker 笔记本电脑

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

默认情况下,Spark 会根据 Spark 群集配置将群集资源分配给 Livy 会话。在Amazon Glue开发终端节点时,群集配置取决于工作线程类型。下面的表格解释了每个工作线程类型的常见配置。

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

Spark 执行程序的最大数量是通过 DPU(或NumberOfWorkers)和工作人员类型。

标准 .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 会话。

注意

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