本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AWS Glue Studio 管理 ETL 任务
您可以使用 AWS Glue Studio 中的简单图形界面,管理您的 ETL 任务。使用导航菜单,选择 Jobs (任务) 查看 Jobs (任务) 页面。在此页面上,您可以看到您使用 AWS Glue Studio 或 AWS Glue 控制台创建的所有任务。您可以在此页面上查看、管理和运行您的任务。
启动任务运行
在 AWS Glue Studio 中,您可以按需运行您的任务。任务可以多次运行,每次您运行任务时,AWS Glue 会收集有关任务活动和绩效的信息。此信息称为 任务运行 ,由任务运行 ID 标识。
您可以通过以下方式在 AWS Glue Studio 中启动任务:
在 Jobs (任务) 页面上,选择要启动的任务,然后选择 Run job (运行任务) 按钮。
如果您在可视化编辑器中查看任务并且任务已保存,则可以选择 Run (运行) 按钮启动任务运行。
有关任务运行的更多信息,请参阅《AWS Glue 开发人员指南》 中的 在 AWS Glue Glue 控制台上处理任务 。
计划任务运行
在 AWS Glue Studio 中,您可以创建计划,让您的任务在特定时间运行。您可以指定约束条件,例如任务运行次数、它们在一周中的哪几天运行,以及具体在什么时间运行。这些约束基于
cron
,与
cron
具有相同的限制。例如,如果您选择在每月第 31 天运行您的任务,请记住,有些月份没有 31 天。有关
cron
的更多信息,请参阅《AWS Glue 开发人员指南》
中的
Cron 表达式
。
按照计划运行任务
-
使用以下某种方法创建任务计划:
在 Jobs (任务) 页面上,选择要为其创建计划的任务,选择 Actions (操作) ,然后选择 Schedule job (计划任务) 。
如果您在可视化编辑器中查看任务并且任务已保存,则选择 Schedules (计划) 选项卡。然后,选择 Create Schedule (创建计划) 。
在 Schedule job run (计划任务运行) 页面上,输入以下信息:
Hourly (每小时) :任务将每小时运行一次,从特定的分钟开始。您可以指定任务运行小时的具体 Minute (分钟) 。默认情况下,当您选择每小时时,任务将在小时之初(分钟 0)开始运行。
Daily (每天) :任务将每天运行,从某个时间开始。您可以指定任务运行小时的具体 Minute (分钟) 以及任务的 Start hour (开始小时) 。小时使用 23 小时制时钟指定,其中您使用数字 13 到 23 表示下午小时。分钟和小时的默认值为 0,这意味着如果您选择 Daily (每天) ,则默认情况下,任务将在午夜运行。
Weekly (每周) :任务将在每周的一天或多天内运行。除前面针对“Daily (每天)”介绍的相同设置外,您还可以选择任务运行的具体周时间。您可以选择一天或多天。
Monthly (每月) :任务将在每月的特定日期运行。除前面针对“Daily (每天)”介绍的相同设置外,您还可以选择任务运行的具体日期。将日期指定为 1 到 31 之间的数值。如果您选择一个月中不存在的日期,例如 2 月 30 日 ,则任务在该月不会运行。
自定义 :使用
cron
语法输入任务计划的表达式。Cron 表达式允许您创建更复杂的计划,例如每月的最后一天(而不是该月的特定日期),或者每三个月的 第 7 天 和 第 21 天 。请参阅《AWS Glue 开发人员指南》 中的 Cron 表达式
Description (描述) :您可以有选择地为任务计划输入描述。如果您计划为多项任务使用相同的计划,则描述有助于更轻松地确定任务计划的用途。
选择 Create schedule (创建计划) ,保存任务计划。
创建计划后,控制台页面的顶部会显示一条成功消息。您可以选择此横幅中的 Job details (任务详细信息) ,查看任务详细信息。这样将打开可视化任务编辑器页面,其中 Schedules (计划) 选项卡处于选中状态。
管理任务计划
为任务创建计划后,您可以在可视化编辑器中打开任务,然后选择 Schedules (任务) 选项卡以管理计划。
在可视化编辑器的 Schedules (计划) 选项卡,您可以执行以下任务:
编辑现有计划。
选择要编辑的计划,然后依次选择 Action (操作) 、 Edit schedule (编辑计划) 。当您选择编辑现有计划时, Frequency (频率) 显示为 Custom (自定义) ,并且计划显示为
cron
表达式。您可以修改cron
表达式,也可以使用 Frequency (频率) 按钮指定新计划。完成更改后,选择 Update schedule (更新计划) 。暂停活动计划。
选择活动计划,然后依次选择 Action (操作) 、 Pause schedule (暂停计划) 。计划会立即停用。选择刷新(重新加载)按钮,查看更新的任务计划状态。
恢复暂停的计划。
选择停用计划,然后依次选择 Action (操作) 、 Resume schedule (恢复计划) 。计划会立即激活。选择刷新(重新加载)按钮,查看更新的任务计划状态。
删除计划。
选择要删除的计划,然后依次选择 Action (操作) 、 Delete schedule (删除计划) 。计划会立即删除。选择刷新(重新加载)按钮,查看更新的任务计划列表。该计划将显示 Deleting (删除) 状态,直到它完全删除。
停止任务运行
您可以在任务完成任务运行之前将其停止。如果您知道任务未正确配置,或者任务花费太长时间而未完成,则可以选择此选项。
在 Monitoring (监控) 页面中的 Job runs (任务运行) 列表中,选择要停止的任务,然后依次选择 Actions (操作) 、 Stop run (停止运行) 。
查看您的作业
您可以在 Jobs (任务) 页面查看您的所有任务。您可以在导航窗格中选择 Jobs (任务) 以访问此页面。
在 Jobs (任务) 页面上,您可以查看账户中创建的所有任务。 Your jobs (您的任务) 列表会显示任务名称、类型、上次任务运行的状态,以及任务创建和上次修改的日期。您可以选择任务名称,查看相关任务的详细信息。
您还可以使用监控控制面板查看所有任务。您可以在导航窗格中选择 Monitoring (监控) 以访问控制面板。
自定义任务显示
您可以在 Jobs (任务) 页面的 Your jobs (您的任务) 部分中自定义任务的显示方式。此外,您可以在搜索文本字段中输入文本,以便仅显示名称包含该文本的任务。
如果选择 Your jobs (您的任务) 部分中的设置图标
-
输入参数
-
连续日志
-
指标 – 您可以直观地查看基本指标。有关所包含指标的更多信息,请参阅 查看 Spark 作业运行的 Amazon CloudWatch 指标 。
-
Spark UI – 您可以在 Spark UI 中直观地查看任务的 Spark 日志。有关使用 Spark Web UI 的更多信息,请参阅 使用 Apache Spark Web UI 监控作业 。按照 为 AWS Glue 作业启用 Apache Spark Web UI 中描述的过程启用此功能。
-
您可以选择 查看详细信息 ,以在作业运行详细信息页面上查看类似的信息。您还可以通过 监控 页面导航到作业运行详细信息页面。在导航窗格中,选择 Monitoring (监控) 。向下滚动到 Job runs (任务运行) 列表。选择任务,然后选择 View run details (查看运行详细信息) 。内容在 查看任务运行的详细信息 中有描述。
有关任务日志的更多信息,请参阅 查看任务运行日志 。
查看任务脚本
提供任务中所有节点的信息后,AWS Glue Studio 会生成任务使用的脚本,用于从源中读取数据、转换数据以及将数据写入目标位置。如果保存任务,您可以随时查看此脚本。
查看任务生成的脚本
-
在导航窗格中,选择 Jobs (任务) 。
在 Jobs (任务) 页面中的 Your Jobs (您的任务) 列表中,选择要查看的任务的名称。或者,您可以在列表中选择一项任务,选择 Actions (操作) 菜单,然后选择 Edit job (编辑任务) 。
在可视化编辑器页面上,选择 Script (脚本) 选项卡以查看任务任务脚本。
如果您要编辑任务脚本,请参阅 AWS Glue 编程指南 。
修改任务属性
任务图中的节点定义了任务执行的操作,但也可以为任务配置多个属性。这些属性用于确定任务运行环境、任务使用的资源、阈值设置、安全设置等。
自定义任务运行环境
-
在导航窗格中,选择 Jobs (任务) 。
在 Jobs (任务) 页面中的 Your Jobs (您的任务) 列表中,选择要查看的任务的名称。
在可视化编辑器页面上,选择任务编辑窗格顶部的 Job details (任务详细信息) 。
根据需要修改任务属性。
有关任务属性的更多信息,请参阅《AWS Glue 开发人员指南》 中的 定义任务属性 。
如果您需要指定以下附加任务属性,则展开 Advanced properties (高级属性) 部分:
Script filename (脚本文件名) – 在 Amazon S3 中存储任务脚本的文件的名称。
Script path (脚本路径) – 任务脚本的 Amazon S3 存储位置。
Job metrics (任务指标) –(不适用于 Python Shell 任务)当此任务运行时启用 Amazon CloudWatch 指标创建。
Continuous logging (连续日志记录) –(不适用于 Python Shell 任务)打开 CloudWatch 的连续日志记录,以便在任务完成之前可以查看日志
Spark UI 和 Spark UI logs path (Spark UI 日志路径) –(不适用于 Python Shell 任务)使用 Spark UI 监控此任务,并指定 Spark UI 日志的位置。
Maximum concurrency (最大并发) – 设置此任务业允许的并发运行的最大数量。
Temporary path (临时路径) – 在 Amazon S3 中提供工作目录的位置,以便当 AWS Glue 运行脚本时在该位置写入临时中间结果。
Delay notification threshold (minutes) (延迟通知阈值(分钟)) – 指定任务的延迟阈值。如果任务运行时间长于阈值指定的时间,则 AWS Glue 将任务的延迟通知发送给 CloudWatch。
Security configuration (安全配置) 和 Server-side encryption (服务器端加密) – 使用这些字段选择任务的加密选项。
Use Glue Data Catalog as the Hive metastore (使用 Glue 数据目录作为 Hive 元存储) – 选择此选项,如果您要使用 AWS Glue Data Catalog 作为 Apache 蜂巢元数据仓的替代方案。
Additional network connection (附加网络连接) – 对于 VPC 中的数据源,您可以指定类型为
Network
,确保您的任务通过 VPC 访问您的数据。Python library path (Python 库路径) 、 Dependent jars path (从属 jars 路径) (不适用于 Python Shell 任务)或 Referenced files path (引用的文件路径) – 使用这些字段指定任务运行脚本时使用的其他文件的位置。
Job Parameters (任务参数) – 您可以添加作为命名参数传递给脚本的一组键值对。在 Python 对 AWS Glue API 的调用中,最好按名称显式传递参数。有关在任务脚本中使用参数的更多信息,请参阅《AWS Glue 开发人员指南》 中的 在 AWS Glue 中传递和访问 Python 参数 。
Tags (标签) – 您可以将标签添加到任务,帮助您组织和识别它们。
修改任务属性后,保存任务。
将 Spark 随机播放文件存储在 Amazon S3 上
某些 ETL 任务需要读取和合并来自多个分区的信息,例如,在使用连接转换时。此操作称为 随机排序 。在随机排序过程中,数据会写入磁盘并通过网络传输。借助 AWS Glue 3.0 版,您可以将 Amazon S3 配置为这些文件的存储位置。AWS Glue 提供一个随机播放管理器,用于在 Amazon S3 中写入和读取随机文件。与本地磁盘(或者针对 Amazon EC2 进行了严格优化的 Amazon EBS)相比,从 Amazon S3 写入和读取随机放置文件的速度较慢(降低 5%-20%)。不过,Amazon S3 提供无限存储容量,因此您不必担心“
No space left on device
”错误运行您的任务。将您的任务配置为使用 Amazon S3 对文件进行随机排序
-
在 Jobs (任务) 页面中的 Your Jobs (您的任务) 列表中,选择要修改的任务的名称。
在可视化编辑器页面上,选择任务编辑窗格顶部的 Job details (任务详细信息) 。
向下滚动到 Job parameters (任务参数) 部分。
指定以下键/值对。
--write-shuffle-files-to-s3
—true
这是用于配置 AWS Glue 中随机排序管理器的主要参数,使用 Amazon S3 存储桶来写入和读取随机数据。此参数的默认值为
false
。(可选)
--write-shuffle-spills-to-s3
–true
此参数允许您将溢出文件卸载到 Amazon S3 存储桶,从而为AWS Glue。只有将大量数据溢出到磁盘的大型工作负载才需要这样做。此参数的默认值为
false
。(可选)
--conf spark.shuffle.glue.s3ShuffleBucket
–S3://<
shuffle-bucket
>此参数指定在写入临时排序文件时要使用的 Amazon S3 存储桶。如果未设置此参数,则位置是
shuffle-data
文件夹中指定的 临时路径 (--TempDir
)位置。注意
确保 Shell 存储桶位于任务运行所在的相同 AWS 区域。
此外,随机排序服务不会在任务完成运行后清理文件,因此您应该在 Shell 存储桶位置上配置 Amazon S3 存储生命周期策略。有关更多信息,请参阅《Amazon S3 用户指南》 中的 对象生命周期管理 。
保存任务后,“not saved (未保存)”标注将更改为显示上次保存任务的时间和日期。
如果您在退出 AWS Glue Studio 时未保存您的任务,您下次登录 AWS Glue Studio 时,会显示通知。通知指示存在未保存的任务,并询问您是否要恢复。如果选择恢复任务,则可以继续对其进行编辑。
排查保存任务时的错误
如果选择 Save (保存) 按钮,但您的任务缺少了一些必需的信息,那么缺少信息的选项卡上会出现一个红色标注。标注中的数字表示检测到的缺失字段数。
您可以使用 Clone job (克隆任务) 操作将现有任务复制到新任务。
通过复制现有任务创建新任务
-
在 Jobs (任务) 页面中的 Your jobs (您的任务) 列表中,选择要复制的任务。
从 Actions (操作) 菜单中,选择 Clone job (克隆任务) 。
输入新任务的名称。然后,您可以保存或编辑任务。
-
-
-