使用任务运行程序在现有资源上执行工作 - AWS Data Pipeline

使用任务运行程序在现有资源上执行工作

您可以在自己管理的计算资源(如 Amazon EC2 实例、物理服务器或工作站)上安装任务运行程序。可在任意位置的任何兼容的硬件或操作系统上安装任务运行程序,前提是它能够与 AWS Data Pipeline Web 服务进行通信。

例如,当您需要使用 AWS Data Pipeline 处理存储在组织防火墙内的数据时,此方法会很有用。通过在局域网内的服务器上安装任务运行程序,您可以安全访问本地数据库,然后轮询 AWS Data Pipeline 以获取要运行的下一个任务。当 AWS Data Pipeline 终止处理或删除管道时,任务运行程序实例仍将在计算资源上运行,直至您手动将其关闭。管道执行完成后,任务运行程序日志将保留。

要在您管理的资源上使用任务运行程序,您必须先下载任务运行程序,然后使用此部分中的过程将它安装到您的计算资源上。

注意

您只能在 Linux、UNIX 或 macOS 上安装任务运行程序。Windows 操作系统不支持任务运行程序。

要使用任务运行程序 2.0,所需的最低 Java 版本为 1.7。

要将安装的任务运行程序连接到它将处理的管道活动,请将 workerGroup 字段添加到该对象,并将任务运行程序配置为轮询此工作线程组值。在运行任务运行程序 JAR 文件时,可通过将工作线程组字符串作为参数(例如 --workerGroup=wg-12345)传递来执行此操作。

{ "id" : "CreateDirectory", "type" : "ShellCommandActivity", "workerGroup" : "wg-12345", "command" : "mkdir new-directory" }

安装任务运行程序

此部分介绍如何安装和配置任务运行程序及其先决条件。安装是一个简单的手动过程。

安装任务运行程序
  1. 任务运行程序需要 Java 版本 1.6 或 1.8。要确定是否已安装 Java 以及所运行的版本,请使用以下命令:

    java -version

    如果您的计算机上未安装 Java 1.6 或 1.8,则可从 http://www.oracle.com/technetwork/java/index.html 下载其中一个版本。下载并安装 Java,然后继续下一步骤。

  2. https://s3.amazonaws.com/datapipeline-us-east-1/us-east-1/software/latest/TaskRunner/TaskRunner-1.0.jar 下载 TaskRunner-1.0.jar,然后将其复制到目标计算资源上的文件夹中。对于运行 EmrActivity 任务的 Amazon EMR 集群,请在集群的主节点上安装任务运行程序。

  3. 使用任务运行程序连接到 AWS Data Pipeline Web 服务以处理您的命令时,用户需要以编程方式访问有权创建或管理数据管道的角色。有关更多信息,请参阅授权以编程方式访问

  4. 任务运行程序使用 HTTPS 连接到 AWS Data Pipeline Web 服务。如果您使用的是 AWS 资源,请确保在适当的路由表和子网 ACL 中启用 HTTPS。如果您使用的是防火墙或代理,请确保端口 443 处于打开状态。

启动任务运行程序

在设置为已将任务运行程序安装到的目录的新命令提示窗口中,使用以下命令启动任务运行程序。

java -jar TaskRunner-1.0.jar --config ~/credentials.json --workerGroup=myWorkerGroup --region=MyRegion --logUri=s3://mybucket/foldername

--config 选项指向您的凭证文件。

--workerGroup 选项指定工作线程组的名称,它必须是您在管道中为要处理的任务指定的同一值。

--region 选项指定从中提取要执行的任务的服务区域。

--logUri 选项用于将压缩的日志推送到 Amazon S3 中的某个位置。

当任务运行程序处于活动状态时,它将在终端窗口中输出日志文件的写入位置的路径。以下是示例。

Logging to /Computer_Name/.../output/logs

任务运行程序应独立于登录 shell 运行。如果您使用终端应用程序来连接到您的计算机,则可能需要使用实用工具 (如 nohup 或 screen) 来防止任务运行程序应用程序在您注销时退出。有关命令行选项的更多信息,请参阅任务运行程序配置选项

验证任务运行程序日志记录

验证任务运行程序是否正常工作的最简单方法是,检查它是否在写入日志文件。任务运行程序每小时将日志文件写入到安装任务运行程序的目录下的 output/logs 目录中。文件名为 Task Runner.log.YYYY-MM-DD-HH,其中 HH 的范围为 00 到 23 (用 UDT 表示)。为了节省存储空间,将使用 GZip 压缩 8 小时之前的任何日志文件。