×

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 JobRunner


使用一个名为 run-job.sh 的脚本启动 Samza 作业。

samza-example/target/bin/run-job.sh 
  --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory 
  --config-path=file://$PWD/config/hello-world.properties

您为 run-job.sh 脚本提供两个参数:一个是配置位置,另一个是用于读取配置文件的工厂类。run-job.sh 脚本实际上是在执行一个名为 JobRunner 的 Samza 类。JobRunner 使用您的ConfigFactory 从配置路径获取一个 Config 对象。

public interface ConfigFactory {
  Config getConfig(URI configUri);
}

Config 对象只是 Map 的包装,有一些不错的帮助方法。可以立即使用的是,Samza 随附了 PropertiesConfigFactory,但开发人员可以实现任何他们希望的 ConfigFactory。

一旦 JobRunner 得到您的配置,它会将您的配置提供给由 “job.factory” 属性定义的 StreamJobFactory 类。Samza 拥有三个作业工厂实现:ThreadJobFactory,ProcessJobFactory 和YarnJobFactory。StreamJobFactory 的职责是给 JobRunner 一个可以运行的工作。

public interface StreamJob {
  StreamJob submit();

  StreamJob kill();

  ApplicationStatus waitForFinish(long timeoutMs);

  ApplicationStatus waitForStatus(ApplicationStatus status, long timeoutMs);

  ApplicationStatus getStatus();
}

一旦 JobRunner 获得了工作,它就会在 job 上调用 submit()。这个方法是告诉 StreamJob 实现来启动 SamzaContainer。在 LocalJobRunner 的情况下,它使用一个 run-container.sh 脚本在单独的进程中执行 SamzaContainer,这将在您运行 run-job.sh 的计算机上本地启动一个 SamzaContainer。

当您使用 YARN 时,此流程略有不同,稍后将介绍。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)