Samza附录二 任务资源

2018-08-18 17:34 更新

该资源公开端点以支持任务范围内的操作。初始实现包括列出特定作业的所有任务的能力。这是“ 工作资源”的子资源,不能单独使用。

各个端点的响应将根据其功能和范围而有所不同。但是,所有任务的资源端点的错误消息将具有以下形式。

错误信息

每个错误响应将具有以下结构:

{
    "message": "Unrecognized status parameter: null"
}

message 是响应中唯一的字段,并包含对该问题的描述。 

获取所有任务

列出有关特定作业的所有任务的完整详细信息

请求
GET /v1/jobs/{jobName}/{jobId}/tasks
响应

状态:200 OK

[
{
   "preferredHost" : "samza-preferredHost",
   "taskName" : "Samza task",
   "containerId" : "0",
   "partitions" : [{
                      "system" : "kafka",
                      "stream" : "topic-name",
                      "partitionId" : "0"
                    }]
 }
 ]
响应码
状态描述
200好操作成功完成,并返回作业的所有任务。
错误(404
提供了无效的作业实例作为参数。
{
"message": "Invalid arguments for getTasks. jobName: SamzaJobName jobId: SamzaJobId."
}
500服务器错误
在服务器上执行该命令时发生错误。例如命令超时。
{
    "message": "Timeout waiting for get all tasks."
}

设计

抽象

TasksResource 需要两个主要抽象,用户可以通过这些抽象来处理特定于其环境的任何细节。

  1. TaskProxy:这个接口是与 Samza 任务交互的中心点。它暴露了一种方法来获得 Samza 工作的所有任务。
  2. InstallationFinder:InstallationFinder 提供了一个通用接口,用于发现所有安装的作业,在作业包结构及其位置隐藏任何自定义。InstallationFinder 还解决了用于验证和识别作业的作业配置。

组态

应该在与 Samza REST 配置相同的文件中指定 TasksResource 属性。

名称描述
task.proxy.factory.class
必需: TaskProxyFactory将用于创建TaskProxy实例。该值是必须实现TaskProxyFactory的完全限定类名称。Samza配有一个实现:
org.apache.samza.rest.proxy.task.SamzaTaskProxy
获取工作的所有任务的细节。它使用
SimpleInstallationRecord
与安装在磁盘上的Samza作业进行交互。
job.installations.path必需:包含Samza作业安装的文件系统路径。路径必须与Samza REST Service在同一主机上。每个安装必须是一个目录,其结构符合JobProxy使用的InstallationRecord实现的期望。
job.config.factory.class
用于阅读Samza作业配置的配置工厂。这用于获取InstallationRecord中每个作业实例的job.name和job.id属性。它也用于验证安装路径中的特定目录实际包含Samza作业。如果没有指定
org.apache.samza.config.factories.PropertiesConfigFactory
将会被使用。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号