×

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 支持实现流抽象的可插拔系统:在 Kafka 中,一个流是一个主题,在数据库中,我们可以通过在 Hadoop 中消耗更新来读取流,我们可能会拖放 HDFS 中的文件目录。

job

工作

Samza 作业是对一组输入流执行逻辑变换以将输出消息附加到输出流集合的代码。

如果可扩展性不是一个问题,流和工作就是我们所需要的。然而,为了缩小流处理器的吞吐量,我们将流和作业分解成更小的并行单元:分区和任务。

分区

每个流被分解成一个或多个分区。流中的每个分区是完全有序的消息序列。

该序列中的每个消息都有一个称为偏移量的标识符,每个分区是唯一的。取决于底层的系统实现,偏移量可以是顺序整数,字节偏移量或字符串。

当一条消息附加到流中时,它只会附加到流的一个分区。消息分配到其分区是由写入器选择的一个关键字来完成的。例如,如果使用用户ID作为密钥,则可确保与特定用户相关的所有消息都在同一分区中。

stream

任务

通过将作业分解成多个任务来缩放作业。该任务是任务并行的单位,就像分区到流。每个任务从每个作业的输入流的一个分区中消耗数据。

一个任务按照消息偏移的顺序来顺序处理每个输入分区的消息。分区之间没有定义的排序。这允许每个任务独立运行。YARN 调度程序将每个任务分配给一台机器,因此整个作业可以分布在许多机器上。

作业中的任务数量由输入分区的数量决定(不能比输入分区更多的任务,或没有输入的任务)。但是,您可以更改分配给作业的计算资源(内存量,CPU内核数量等)以满足作业的需要。请参见下面的容器说明。

分区到任务的分配永远不会改变:如果任务在失败的计算机上,则任务在别处重新启动,仍然占用相同的流分区。

dag

数据流图

我们可以组合多个作业来创建数据流图,其中边是包含数据的流,并且节点是执行转换的作业。这个组合完全是通过作业作为输入和输出的流完成的。作业完全解耦:它们不需要在相同的代码库中实现,并且添加,删除或重新启动下游作业不会影响上游作业。

这些图表通常是非循环的,也就是说,数据通常不会通过其他作业流向自己。但是,如果需要,可以创建循环图。


集装箱

分区和任务都是并行性的逻辑单元,它们不对应于计算资源(CPU,内存,磁盘空间等)的任何特定分配。容器是物理并行的单元,容器本质上是 Unix 进程(或 Linux cgroup)。每个容器运行一个或多个任务。任务数量根据输入中的分区数量自动确定,并被固定,但容器数量(以及与它们相关联的 CPU 和内存资源)数量由用户在运行时指定,并且可以随时更改。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)