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 | 提供了无效的作业实例作为参数。
|
500服务器错误 | 在服务器上执行该命令时发生错误。例如命令超时。
|
设计
抽象
TasksResource 需要两个主要抽象,用户可以通过这些抽象来处理特定于其环境的任何细节。
- TaskProxy:这个接口是与 Samza 任务交互的中心点。它暴露了一种方法来获得 Samza 工作的所有任务。
- 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 将会被使用。 |
以上内容是否对您有帮助:
更多建议: