×

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 工作。

获取代码

查看 hello-samza 项目:

git clone https://git.apache.org/samza-hello-samza.git hello-samza
cd hello-samza

该项目包含运行您的第一个Samza工作所需的一切。

启动一个网格

Samza 网格通常包括三种不同的系统:YARNKafkaZooKeeper。hello-samza 项目附带一个名为 “grid” 的脚本来帮助您设置这些系统。

开始运行:

bin/grid bootstrap

该命令将下载,安装和启动 ZooKeeper,Kafka 和 YARN。它还将检查最新版本的 Samza 并构建它。所有包文件将被放在 hello-samza 的根文件夹内的一个名为 “deploy” 的子目录中。

如果您抱怨 JAVA_HOME 未设置,那么您需要将其设置为系统上安装 Java 的路径。

一旦 grid 命令完成,您可以通过转到 http:// localhost:8088 来验证YARN是否已启动并运行。这就是 YARN UI。

建立Samza工作包

在您可以运行 Samza 工作之前,您需要为其构建一个包,这个包是 YARN 用来在网格上部署你的作业的。

注意:如果您正在从 hello-samza 项目的最新分支建立,请确保您从本地 Samza 项目中运行以下步骤:

./gradlew publishToMavenLocal

然后,您可以在 hello-samza 项目中继续执行以下命令:

mvn clean package
mkdir -p deploy/samza
tar -xvf ./target/hello-samza-0.13.0-dist.tar.gz -C deploy/samza

运行Samza工作

构建 Samza 软件包后,可以使用 run-app.sh 脚本在网格上启动作业。

deploy/samza/bin/run-app.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-feed.properties

这项工作将消耗维基百科的实时编辑资料,并将其制作成名为“维基百科”的 Kafka 话题。给工作一分钟启动,然后跟着 Kafka 话题:

主题:

deploy/kafka/bin/kafka-console-consumer.sh  --zookeeper localhost:2181 --topic wikipedia-raw

很整洁,对不对?现在,再次查看 YARN UI(http:// localhost:8088)。这一次,你会看到你的Samza工作正在运行!

如果您看不到 Kafka 消费者的任何输出,您可能会遇到连接问题。

生成维基百科统计

我们来计算基于维基百科原始主题的消息的一些统计数据。

开始两个工作:

deploy/samza/bin/run-app.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-parser.properties
deploy/samza/bin/run-app.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-stats.properties

第一个工作(维基百科解析器)解析wikipedia-raw中的消息,并提取关于编辑大小,进行更改的信息等信息。您可以通过以下方式查看其输出:

deploy/kafka/bin/kafka-console-consumer.sh  --zookeeper localhost:2181 --topic wikipedia-edits

最后一个工作(维基百科统计)从维基百科编辑主题中读取消息,并计算在该窗口中进行的所有编辑的每10秒计数。它将这些计数输出到维基百科统计信息主题。

deploy/kafka/bin/kafka-console-consumer.sh  --zookeeper localhost:2181 --topic wikipedia-stats

stats 主题中的消息如下所示:

{"is-talk":2,"bytes-added":5276,"edits":13,"unique-titles":13}
{"is-bot-edit":1,"is-talk":3,"bytes-added":4211,"edits":30,"unique-titles":30,"is-unpatrolled":1,"is-new":2,"is-minor":7}
{"bytes-added":3180,"edits":19,"unique-titles":19,"is-unpatrolled":1,"is-new":1,"is-minor":3}
{"bytes-added":2218,"edits":18,"unique-titles":18,"is-unpatrolled":2,"is-new":2,"is-minor":3}

如果您再次查看 YARN UI,您将看到现在列出了所有三个作业。

关掉

要关闭其中一个作业,请使用与额外的 '-operation = kill' 参数相同的脚本

deploy/samza/bin/run-app.sh --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory --config-path=file://$PWD/deploy/samza/config/wikipedia-feed.properties --operation=kill

完成后,您可以使用相同的网格脚本清理所有内容。

bin/grid stop all

恭喜!您现在已经设置了一个包含 YARN,Kafka 和 ZooKeeper 的本地网格,并在其上运行 Samza 作业。接下来,查看 背景 和 API概述 页面。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)