从控制台开始使用EMR无服务器 - Amazon EMR

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

从控制台开始使用EMR无服务器

步骤 1:创建EMR无服务器应用程序

使用EMR无服务器创建新应用程序,如下所示。

  1. 登录 AWS Management Console 并打开亚马逊EMR控制台,网址为 https://console.aws.amazon.com/emr

  2. 在左侧导航窗格中,选择 EMRServerless 以导航到EMR无服务器登录页面。

  3. 要创建或管理EMR无服务器应用程序,您需要使用 EMR Studio 用户界面。

    • 如果您要在 AWS 区域 其中创建应用程序的 EMR Studio,请选择 “管理应用程序” 以导航到您的 EMR Studio,或者选择要使用的 Studio。

    • 如果您要在 AWS 区域 其中创建应用程序的 EMR Studio 中没有 Studio,请选择 “开始”,然后选择 “创建” 并启动 Studio。EMRServerless 会为您创建一个 EMR Studio,以便您可以创建和管理应用程序。

  4. 在新选项卡中打开的 C reate 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无服务器应用程序完成后,您将进入 EMR Studio 中的应用程序详细信息页面。在那里,选择 “提交作业” 选项。

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

    • 名称字段中,输入您要称之为作业运行的名称。

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

    • 在 “脚本位置” 字段中,以 S3 的s3://amzn-s3-demo-bucket/scripts/wordcount.py身份输入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. Job runs 选项卡中,您应该看到新作业的运行状态为 “正在运行”。

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无服务器应用程序完成后,您将进入 EMR Studio 中的应用程序详细信息页面。在那里,选择 “提交作业” 选项。

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

    • 名称字段中,输入您要称之为作业运行的名称。

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

    • 在 “脚本位置” 字段中,以 S3 的s3://amzn-s3-demo-bucket/emr-serverless-hive/query/hive-query.ql身份输入URI。

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

      --hiveconf hive.log.explain.output=false
    • Job 配置部分,选择编辑为 JSON,然后输入以下内容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. Job runs 选项卡中,您应该看到新作业的运行状态为 “正在运行”。

Interactive workload

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

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

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

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

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

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

  5. 在 “运行时角色” 字段中,输入您的EMR无服务器应用程序可以在作业运行中IAM扮演的角色的名称。要了解有关运行时角色的更多信息,请参阅 Amazon EMR Serverless 用户指南中的 Job 运行时角色

  6. 选择 “附加”。这最多可能需要一分钟。附加后,页面将刷新。

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

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

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

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

要查看应用程序用户界面,请先确定作业运行情况。根据作业类型,该作业运行的第一行选项中提供了 Spark U I 或 Hive Tez UI 的选项。选择相应的选项。

如果您选择了 Spark 用户界面,请选择 “执行器” 选项卡以查看驱动程序和执行者日志。如果您选择了 Hive Tez 用户界面,请选择 “所有任务” 选项卡以查看日志。

任务运行状态显示为成功后,您可以在 S3 存储桶中查看任务的输出。

步骤 4:清除

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

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

有关运行 Spark 和 Hive 作业的更多示例,请参阅Spark 职位和。Hive 职位