×

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 Application Master


YARN 是 Hadoop 的下一代集群管理器。它允许开发人员在网格上部署和执行任意命令。如果您不熟悉 YARN 或 ApplicationMaster(AM)的概念,请阅读 Hadoop 的 YARN 页面。

Samza与YARN的集成

Samza 与 YARN 的主要集成是 Samza ApplicationMaster 的形式。这是负责管理 YARN 网格中的 Samza 工作的代码块。它决定了当流处理器发生故障时该怎么做,哪台机器运行 Samza 作业的 容器,等等。

当 Samza ApplicationMaster 启动时,它执行以下操作:

  1. 创建作业协调器,从协调器流引导作业模型和配置。
  2. 在随机端口上启动 JMX 服务器。
  3. 实例化一个指标注册表和记者来跟踪相关的指标。
  4. 用 YARN 的 RM 注册 AM。
  5. 使用每个输入流的 PartitionManager 获取 Samza 作业的分区总数(有关详细信息,请参阅 Streams 页面)。
  6. 从 Samza 工作的配置中读取所需容器的总数。
  7. 将每个分区分配给容器(在 Samza 的 AM 仪表板中称为任务组)。
  8. 为每个容器创建一个 ResourceRequest 到 YARN。如果作业中启用了 主机关联,则 AM 使用作业协调器提供的容器位置信息,并在 ResourceRequest 中请求相同的主机。
  9. 启动与分配的容器相匹配的 ContainerAllocator 线程,并启动容器进程。
  10. 轮询 YARN RM 每秒检查分配和释放的容器。

从这一点开始,ApplicationMaster 只对来自 RM 的事件做出反应,并将其委托给 ContainerAllocator 线程。

容错

每当分配一个容器时,AM 将使用 YARN NM 在容器中启动一个 SamzaContainer(分配给它的适当的分区)。如果容器出现非零返回代码,AM 将请求一个新容器,并重新启动SamzaContainer。如果 SamzaContainer 失败太多次太快,则 ApplicationMaster 将使整个 Samza 的作业以非零返回码失败。有关详细信息,请参阅

yarn.container.retry.count 和 yarn.container.retry.window.ms 配置参数。

当 AM 从 YARN 接收到重新启动信号时,它会抛出一个 SamzaException。这将引发清理和成功关闭 AM(YARN 不会认为 AM 失败)。

如果 AM 本身失败,则 YARN 将处理重新启动 AM。当 AM 重新启动时,所有正在运行的容器将被杀死,AM 将从头开始。将执行相同的操作列表,如上所示。AM 将为其 SamzaContainers 请求新的容器,并且像刚刚开始的那样首先进行。YARN 具有在 yarn-site.xml 中定义的 yarn.resourcemanager.am.max-retries 配置参数。此配置默认为1,这意味着默认情况下,单个 AM 故障将导致Samza作业停止运行。

安全

即使在安全模式下使用 YARN,Samza 仪表板的 HTTP 访问目前仍未保护。这意味着访问 YARN 网格的用户可以对 Samza ApplicationMaster 的 HTTP 服务器进行端口扫描,并在浏览器中打开仪表板来查看其内容。任何人都可以看到敏感的配置,这样就要小心了。有计划使用 Hadoop的安全功能(SPENAGO)确保Samza的ApplicationMaster 。

有关详细信息,请参阅Samza的 安全 页面。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)