Samza 你好
Samza 你好项目是一个示例项目,旨在帮助你运行你的第一个 Samza 工作。
获取代码
查看 hello-samza 项目:
git clone https://git.apache.org/samza-hello-samza.git hello-samza
cd hello-samza
该项目包含运行您的第一个Samza工作所需的一切。
启动一个网格
Samza 网格通常包括三种不同的系统:YARN,Kafka和ZooKeeper。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概述 页面。
更多建议: