Samza REST入門

2018-08-21 18:43 更新

本教程依賴于 hello-samza 來啟動(dòng)本地群集上的一些示例作業(yè),然后您將通過 JobsResource 訪問。完成本教程后,您將在本地構(gòu)建并部署 Samza REST 資源,更改了 JobsResource 的配置,并執(zhí)行了幾個(gè)基本的卷曲請(qǐng)求,以驗(yàn)證該服務(wù)的工作原理。

讓我們開始吧。

在本地運(yùn)行 你好 Samza 的工作

按照 hello-samza 教程設(shè)置本地網(wǎng)格并運(yùn)行維基百科工作。跳過 關(guān)機(jī)步驟,因?yàn)槟枰\(yùn)行網(wǎng)格才能查詢作業(yè)的 REST 服務(wù)。kafka-console-consumer.sh 如果您不想驗(yàn)證作業(yè)的輸出,則可以選擇跳過所有命令。

注意你克隆 hello-samza 的路徑。您將需要配置 JobsResource 的安裝路徑。

構(gòu)建 Samza REST 服務(wù)包

Samza REST 的源代碼位于 Samza 存儲(chǔ)庫的 samza-rest 模塊中。要構(gòu)建它,請(qǐng)從項(xiàng)目的根目錄執(zhí)行以下 gradle 任務(wù)。

./gradlew samza-rest:clean releaseRestServiceTar

在本地部署 Samza REST 服務(wù)

要部署服務(wù),您只需將 tarball 解壓縮到所需的位置即可。在這里,我們將在本地主機(jī)上部署 tarball

SAMZA_ROOT/samza-rest/build/distributions/deploy/samza-rest

這里 SAMZA_ROO T是通向你的Samza項(xiàng)目的根。

運(yùn)行以下命令:

cd samza-rest/build/distributions/
mkdir -p deploy/samza-rest
tar -xvf ./samza-rest-0.13.0.tgz -C deploy/samza-rest

配置安裝路徑

JobsResource 有一個(gè)必需的配置job.installations.path,它指定作業(yè)的安裝路徑。編輯配置文件:

deploy/samza-rest/config/samza-rest.properties

將job.installations.path設(shè)置為:

job.installations.path=/hello-samza-ROOT/deploy

hello-samza-ROOT 上面提到你的 hello-samza 克隆的路徑在哪里。這告訴 JobsResource 抓取此位置以查找所有已安裝的作業(yè)。

啟動(dòng)Samza REST服務(wù)

要部署服務(wù),請(qǐng)從提取的目錄中運(yùn)行 run-samza-rest-service.sh 腳本。

cd deploy/samza-rest
./bin/run-samza-rest-service.sh  \
  --config-factory=org.apache.samza.config.factories.PropertiesConfigFactory \
  --config-path=file://$PWD/config/samza-rest.properties

您可以向 run-samza-rest-service.sh 腳本提供兩個(gè)參數(shù)。一個(gè)是配置位置,另一個(gè)可選參數(shù)是用于讀取配置文件的工廠類。SamzaRestService 使用您的 ConfigFactory 從配置路徑獲取一個(gè) Config 對(duì)象。在“ 作業(yè)運(yùn)行器”頁面中更詳細(xì)地介紹了 ConfigFactory 。run -samza-rest-service.sh 腳本將阻塞,直到 SamzaRestService 終止。

注意:使用默認(rèn)設(shè)置,JobsResource 將期望可以通過 ApplicationCLI 訪問具有本地資源管理器的 YARN 群集。沒有 YARN,JobsResource 將不會(huì)響應(yīng)任何請(qǐng)求。所以重要的是在下一步之前穿過 hello-samza 演示。

卷曲默認(rèn) REST 服務(wù)

卷曲 JobsResource 以獲取所有安裝的作業(yè)

curl localhost:9139/v1/jobs
[{"jobName":"wikipedia-stats","jobId":"1","status":"STARTED","statusDetail":RUNNING},{"jobName":"wikipedia-parser","jobId":"1","status":"STARTED","statusDetail":RUNNING},{"jobName":"wikipedia-feed","jobId":"1","status":"STARTED","statusDetail":RUNNING}

現(xiàn)在卷曲 JobsResource 以停止其中一個(gè)作業(yè)

curl -X PUT localhost:9139/v1/jobs/wikipedia-feed/1?status=stopped
{"jobId":"1","jobName":"wikipedia-feed","status":"STOPPED","statusDetail":"FINISHED"}

恭喜,您已成功部署Samza REST服務(wù),并使用JobsResource列出作業(yè)并停止工作!

請(qǐng)參閱 JobsResource文檔 了解其余的API。

有關(guān) 資源 的更多信息以及如何添加自己的信息,請(qǐng)參閱 資源文檔。

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)