×

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框架和作业部署


动机

目前,所有 Samza 作业都部署为单个单元/包,将所有 Samza 库,用户代码和配置组合在一起。通常在大型组织中,管理 Samza 群集的团队与在 Samza 之上运行应用程序的团队不同。在这种情况下,目前的部署方式有两个主要问题:

  • Samza 软件版本:每当 Samza 团队发布新版本(例如修复错误)时,部署它的唯一方法是重建所有用户包并重新部署它们。如果团队可以按照自己的节奏单独发布 Samza 框架,并且简单的重新启动将会启动新版本,效率会更高。
  • 软件包不兼容:如果 Samza 和作业都依赖于相同的软件,但是依赖于不同的(特别是向后不兼容的)版本,则不能一起发布,因为它很可能会导致一些运行时问题。理想情况下,它们中的每一个都将分别加载需要的包。 注意。这个问题在这里没有解决。

为了解决第一个问题,我们通过定义两个可部署单元来分离 Samza 框架与用户作业的部署:

  • Samza 框架 - 仅包含 Samza 库,并单独部署到集群中的所有计算机。
  • 用户工作 - 仅包含用户代码,并使用预部署的 Samza 框架运行。

拆分部署允许升级 Samza 框架,而不强制开发人员显式升级其正在运行的应用程序。它还允许不同版本的 Samza 框架与简单的配置更改。这意味着我们可以支持运行数十或数百个作业的组织通常需要的金丝雀,升级和回滚场景。

部署顺序

拆分部署的先决条件

每个部署现在将由两个独立的软件包组成:

  1. Samza 框架 - 包括所有 Samza 图书馆和脚本,如 samza-api,samza-core,samza-log4j,samza-kafka,samza-yarn,samza-kv,samza-kv-inmemory,samza-kv-rocksdb,samza -shell,samza-hdfs 及其所有依赖项。
  2. 用户的工作 - 这包括作业包:StreamTask 实现的所有用户代码,配置和作业所需的其他库。该工作的包应该仅依赖于 samza-api 和没有其他 Samza 库。该包将无法自行启动。为了开始,它将需要使用 Samza 框架。

部署步骤

要以分拆部署模式运行作业:

  1. 部署框架:Samza 框架包应该部署到集群的所有机器到预定义的固定位置。这可以通过仅复制 jar 来完成,或者创建将部署它们的元包。我们假设 'samza-framework' 包安装到 '/.../samza-fwk/0.12.0' 目录中。
  2. 创建符号链接:需要为稳定版本的框架创建符号链接以指向框架位置,例如:ln -s /.../samza-fwk/0.12.0 /.../samza-fwk/STABLE'
  3. 部署用户作业:在作业的配置中,需要以下属性才能启用拆分部署,例如,在 '/ ... / samza-fwk' 中的 Samza 框架路径:samza.fwk.path=/.../samza-fwk 。默认情况下,Samza 将在文件夹内查找稳定链接以查找框架。您还可以通过配置覆盖版本:samza.fwk.version=0.11.1。在这种情况下,Samza 将选择 “/.../samza-fwk/0.11.1” 作为框架位置。这样,用户可以通过更改配置文件中的版本来轻松执行金丝雀,升级和回滚作业。

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)