×

Samza 入门

Samza 你好Samza 下载Samza 功能预览

Samza 详细介绍

Samza 背景Samza 概念Samza 结构

Samza 与其他流处理项目比较

Samza 比较介绍Samza MUPD8Samza 与 StormSamza 与 Spark Streaming

Samza API

Samza API概述

Samza 核心

Samza ContainerSamza 流Samza 序列化Samza 定期检查Samza 状态管理Samza 窗口功能Samza 协调器流Samza 事件循环Samza 指标Samza JMX

Samza 作业部署

Samza JobRunnerSamza 配置Samza 打包Samza YARN工作Samza 记录Samza 再处理Samza Web UI和REST APISamza 分离框架和作业部署

Samza YARN

Samza Application MasterSamza YARN执行隔离Samza 主机关联和 YARNSamza YARN资源本地化Samza YARN安全Samza 写入HDFSSamza 从HDFS文件读取

Samza 相关操作

Samza 安全Samza Kafka自动创建主题

Samza REST服务

Samza REST服务概观Samza REST服务资源Samza REST服务监视器

Samza 附录

附录一 工作资源附录二 任务资源附录三 远程调试附录四 从HDFS部署Samza工作附录五 部署Samza Job到CDH附录六 在多节点YARN中运行附录七 在没有联网的情况下运行附录八 Samza REST入门附录九 Async API和多线程指南附录十 代码附录十一 Samza配置参考

Samza REST服务资源


Samza REST可以暴露任何 JAX-RS 资源。默认情况下,它附带了一个 JobsResource,这将在下面讨论。您可以实现自己的资源并在配置中指定它们。

实施新资源

Samza REST使用 Jersey 实现的 JAX-RS规范。Jersey 文档和示例有助于创建新的资源。

此外,Samza REST强加了以下约定,所有资源都应遵循这些约定。

版本路径

按照惯例,所有资源都使用版本号在其路径前面,以便将来支持旧版API。例如,JobsResource 的基本URL是:

/v1/jobs

如果将来版本的 JobsResource 实现了不同的 API,那么它将在基本路径中使用不同的版本号:

/v2/jobs

所有资源都应该在最新版本上公开,以便客户端可以为所有请求使用通用版本库。

错误消息

每个错误响应将包含一个 JSON 消息正文,其中包含描述问题的单个消息字段。例如:

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

组态

对于需要配置值的资源,还有一些额外的步骤。

  1. 实现一个配置类,它将 MapConfig 扩展为 Resource 的配置的所有常量和访问器。该 SamzaRestConfig 不应与资源 CONFIGS 弄得一团糟。请参阅 JobsResourceConfig 作为示例。
  2. 实现或扩展 ResourceFactory,它将使用全局 Samza REST 配置文件从第1步中实例化 MapConfig 实现,并使用它来构建需要配置的资源。有关示例,请参阅 DefaultResourceFactory
  3. 将所有必需的资源属性添加到 Samza REST配置文件。该 SamzaRestApplication 通过全局配置到配置 ResourceFactories 的资源与 CONFIGS 实例。

向 Samza REST服务添加新资源

资源通过配置添加到 Samza REST服务。根据资源是否需要配置文件的属性,有两种添加新资源的方法。在前一种情况下,资源使用 config 实例化一次,并且实例已注册到SamzaRestApplication;在后一种情况下,Resource 类被注册,并且可以在应用程序的生命周期内实例化多次。

  • 要添加配置的资源,请将 ResourceFactory 实现的完全限定类名称实例化为 rest.resource.factory.classes 服务配置中的属性。
  • 要添加无配置资源,请将资源实现的完全限定类名添加到 rest.resource.classes 服务配置中的属性中。

有关这些配置属性的更多信息,请参阅概述页面中的配置表。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)