从控制台开始使用 EMR Serverless - Amazon EMR

从控制台开始使用 EMR Serverless

本节介绍了如何使用 EMR Serverless,包括创建 EMR Studio。还介绍了如何提交作业运行和查看日志。

步骤 1:创建 EMR Serverless 应用程序

使用 EMR Serverless 创建新应用程序,如下所示。

  1. 通过以下链接登录 AWS Management Console 并打开 Amazon EMR 控制台:https://console.aws.amazon.com/emr

  2. 在左侧导航窗格中,选择 EMR Serverless 以导航到 EMR Serverless 登录页面。

  3. 要创建或管理 EMR Serverless 应用程序,需使用 EMR Studio UI。

    • 如果您要创建应用程序的 AWS 区域 已有 EMR Studio,请选择管理应用程序,导航到 EMR Studio,或选择您要使用的 Studio。

    • 如果您要创建应用程序的 AWS 区域 没有 EMR Studio,请选择开始,然后选择创建并启动 Studio。EMR Serverless 会为您创建一个 EMR Studio,用来创建和管理应用程序。

  4. 在新选项卡中打开的创建 Studio UI 中,输入应用程序的名称、类型和发布版本。如果只想运行批处理作业,请选择仅对批处理作业使用默认设置。对于交互式工作负载,请选择对交互式工作负载使用默认设置。您还可以使用此选项在交互式应用程序上运行批处理作业。如果需要,您可以在以后更改这些设置。

    有关更多信息,请参阅创建 Studio

  5. 选择创建应用程序,创建您的第一个应用程序。

继续下一节 步骤 2:提交作业运行或交互式工作负载,提交作业运行或交互式工作负载。

步骤 2:提交作业运行或交互式工作负载

Spark job run

在本教程中,我们将使用 Pyspark 脚本来计算多个文本文件中唯一单词的出现次数。公有的只读 S3 存储桶可同时存储脚本和数据集。

运行 Spark 作业
  1. 使用以下命令将示例脚本 wordcount.py 上传到新存储桶。

    aws s3 cp s3://us-east-1.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py s3://amzn-s3-demo-bucket/scripts/
  2. 完成 步骤 1:创建 EMR Serverless 应用程序 后,您将进入 EMR Studio 中的应用程序详情页面。在此页面上,选择提交作业选项。

  3. 提交作业页面上,完成以下操作。

    • 名称字段中,输入要调用的作业运行名称。

    • 运行时角色字段中,输入您在 创建作业运行时角色 中创建的角色名称。

    • 脚本位置字段中,输入 s3://amzn-s3-demo-bucket/scripts/wordcount.py 作为 S3 URI。

    • 脚本参数字段中,输入 ["s3://amzn-s3-demo-bucket/emr-serverless-spark/output"]

    • Spark 属性部分,选择以文本形式编辑,然后输入以下配置。

      --conf spark.executor.cores=1 --conf spark.executor.memory=4g --conf spark.driver.cores=1 --conf spark.driver.memory=4g --conf spark.executor.instances=1
  4. 要开始作业运行,请选择提交作业

  5. 作业运行选项卡中,您应该看到状态为正在运行的新作业运行。

Hive job run

在本教程的这一部分,我们将创建一个表,插入几条记录,然后运行计数聚合查询。要运行 Hive 作业,先创建一个包含所有要作为单个作业的一部分运行的 Hive 查询的文件,将该文件上传到 S3,然后在启动 Hive 作业时指定此 S3 路径。

运行 Hive 作业
  1. 创建一个名为 hive-query.ql 的文件,其中包含您要在 Hive 作业中运行的所有查询。

    create database if not exists emrserverless; use emrserverless; create table if not exists test_table(id int); drop table if exists Values__Tmp__Table__1; insert into test_table values (1),(2),(2),(3),(3),(3); select id, count(id) from test_table group by id order by id desc;
  2. 使用以下命令将 hive-query.ql 上传到 S3 存储桶。

    aws s3 cp hive-query.ql s3://amzn-s3-demo-bucket/emr-serverless-hive/query/hive-query.ql
  3. 完成 步骤 1:创建 EMR Serverless 应用程序 后,您将进入 EMR Studio 中的应用程序详情页面。在此页面上,选择提交作业选项。

  4. 提交作业页面上,完成以下操作。

    • 名称字段中,输入要调用的作业运行名称。

    • 运行时角色字段中,输入您在 创建作业运行时角色 中创建的角色名称。

    • 脚本位置字段中,输入 s3://amzn-s3-demo-bucket/emr-serverless-hive/query/hive-query.ql 作为 S3 URI。

    • Hive 属性部分,选择以文本形式编辑,然后输入以下配置。

      --hiveconf hive.log.explain.output=false
    • 作业属性部分,选择以文本形式编辑,然后输入以下 JSON。

      { "applicationConfiguration": [{ "classification": "hive-site", "properties": { "hive.exec.scratchdir": "s3://amzn-s3-demo-bucket/emr-serverless-hive/hive/scratch", "hive.metastore.warehouse.dir": "s3://amzn-s3-demo-bucket/emr-serverless-hive/hive/warehouse", "hive.driver.cores": "2", "hive.driver.memory": "4g", "hive.tez.container.size": "4096", "hive.tez.cpu.vcores": "1" } }] }
  5. 要开始运行作业,请选择提交作业

  6. 作业运行选项卡中,您应该看到状态为正在运行的新作业运行。

Interactive workload

在 Amazon EMR 6.14.0 及更高版本中,您可以使用 EMR Studio 中托管的笔记本在 EMR Serverless 中运行 Spark 的交互式工作负载。有关权限和先决条件等更多信息,请参阅 通过 EMR Studio 使用 EMR Serverless 运行交互式工作负载

创建应用程序并设置所需权限后,请按以下步骤使用 EMR Studio 运行交互式笔记本:

  1. 导航到 EMR Studio 中的工作区。如果仍需要配置 Amazon S3 存储位置和 EMR Studio 服务角色,请选择屏幕顶部横幅中的配置 Studio 按钮。

  2. 要访问笔记本,请选择一个工作区或创建一个新工作区。使用快速启动在新选项卡中打开工作区。

  3. 转到新打开的选项卡。从左侧导航栏中选择计算图标。选择 EMR Serverless 作为计算类型

  4. 选择您在上一节中创建的交互式应用程序。

  5. 运行时角色字段中,输入 EMR Serverless 应用程序在运行作业时可代入的 IAM 角色名称。要了解有关运行时角色的更多信息,请参阅《Amazon EMR Serverless 用户指南》中的作业运行时角色

  6. 选择附加。该过程可能需要一分钟。附加后,页面将会刷新。

  7. 选择内核并启动笔记本。您还可以浏览 EMR Serverless 上的示例笔记本,将其复制到工作区。要访问示例笔记本,请导航到左侧导航栏中的 {...} 菜单,然后浏览笔记本文件名中包含 serverless 的笔记本。

  8. 在笔记本中,您可以访问驱动程序日志链接和指向 Apache Spark UI 链接,Apache Spark UI 是一个实时界面,提供了监控作业的指标。有关更多信息,请参阅《Amazon EMR Serverless 用户指南》中的监控 EMR Serverless 应用程序和作业

将应用程序附加到 Studio 工作区时,如果应用程序尚未运行,则会自动触发启动。您也可以预先启动应用程序,在将其附加到工作区之前准备就绪。

步骤 3:查看应用程序 UI 和日志

要查看应用程序 UI,先确定作业运行情况。该作业运行的第一行选项中提供了 Spark UIHive Tez UI 选项(取决于作业类型)。选择相应的选项。

如果选择 Spark UI,请选择执行程序选项卡以查看驱动程序和执行程序日志。如果选择 Hive Tez UI,请选择所有任务选项卡以查看日志。

一旦作业运行状态显示为成功,就可以在 S3 存储桶中查看作业的输出。

步骤 4:清除

虽然您创建的应用程序应在 15 分钟不活动后自动停止,但我们仍然建议您释放不打算再次使用的资源。

要删除应用程序,请导航到列出应用程序页面。选择您创建的应用程序,然后选择操作→停止以停止应用程序。应用程序处于 STOPPED 状态后,选择同一应用程序,然后选择操作→删除

有关运行 Spark 和 Hive 作业的更多示例,请参阅 运行 EMR Serverless 作业时使用 Spark 配置运行 EMR Serverless 作业时使用 Hive 配置