Samza 你好

2018-08-23 09:29 更新

Samza 你好項目是一個示例項目,旨在幫助你運行你的第一個 Samza 工作。

獲取代碼

查看 hello-samza 項目:

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

該項目包含運行您的第一個Samza工作所需的一切。

啟動一個網(wǎng)格

Samza 網(wǎng)格通常包括三種不同的系統(tǒng):YARN,KafkaZooKeeper。hello-samza 項目附帶一個名為 “grid” 的腳本來幫助您設(shè)置這些系統(tǒng)。

開始運行:

bin/grid bootstrap

該命令將下載,安裝和啟動 ZooKeeper,Kafka 和 YARN。它還將檢查最新版本的 Samza 并構(gòu)建它。所有包文件將被放在 hello-samza 的根文件夾內(nèi)的一個名為 “deploy” 的子目錄中。

如果您抱怨 JAVA_HOME 未設(shè)置,那么您需要將其設(shè)置為系統(tǒng)上安裝 Java 的路徑。

一旦 grid 命令完成,您可以通過轉(zhuǎn)到 http:// localhost:8088 來驗證YARN是否已啟動并運行。這就是 YARN UI。

建立Samza工作包

在您可以運行 Samza 工作之前,您需要為其構(gòu)建一個包,這個包是 YARN 用來在網(wǎng)格上部署你的作業(yè)的。

注意:如果您正在從 hello-samza 項目的最新分支建立,請確保您從本地 Samza 項目中運行以下步驟:

./gradlew publishToMavenLocal

然后,您可以在 hello-samza 項目中繼續(xù)執(zhí)行以下命令:

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

運行Samza工作

構(gòu)建 Samza 軟件包后,可以使用 run-app.sh 腳本在網(wǎng)格上啟動作業(yè)。

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

很整潔,對不對?現(xiàn)在,再次查看 YARN UI(http:// localhost:8088)。這一次,你會看到你的Samza工作正在運行!

如果您看不到 Kafka 消費者的任何輸出,您可能會遇到連接問題。

生成維基百科統(tǒng)計

我們來計算基于維基百科原始主題的消息的一些統(tǒng)計數(shù)據(jù)。

開始兩個工作:

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中的消息,并提取關(guān)于編輯大小,進行更改的信息等信息。您可以通過以下方式查看其輸出:

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

最后一個工作(維基百科統(tǒng)計)從維基百科編輯主題中讀取消息,并計算在該窗口中進行的所有編輯的每10秒計數(shù)。它將這些計數(shù)輸出到維基百科統(tǒng)計信息主題。

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,您將看到現(xiàn)在列出了所有三個作業(yè)。

關(guān)掉

要關(guān)閉其中一個作業(yè),請使用與額外的 '-operation = kill' 參數(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 --operation=kill

完成后,您可以使用相同的網(wǎng)格腳本清理所有內(nèi)容。

bin/grid stop all

恭喜!您現(xiàn)在已經(jīng)設(shè)置了一個包含 YARN,Kafka 和 ZooKeeper 的本地網(wǎng)格,并在其上運行 Samza 作業(yè)。接下來,查看 后臺 和 API概述 頁面。

Samza 下載  >>

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號