Samza REST服務(wù)概觀

2018-08-22 18:29 更新

Samza 提供了可在群集中的任何節(jié)點(diǎn)上部署的 REST服務(wù),并具有可插入接口以添加自定義資源監(jiān)視器。它旨在成為一個(gè)常見的動(dòng)作的節(jié)點(diǎn)本地委托,例如啟動(dòng)作業(yè),取樣本地狀態(tài),測(cè)量磁盤使用情況,采取堆轉(zhuǎn)儲(chǔ),驗(yàn)證活動(dòng)等等。

Samza REST服務(wù)尚未啟用 SSL 或身份驗(yàn)證,因此最初適用于更多后端和操作用例。例如,在不允許用戶停止對(duì)方的工作的環(huán)境中將其暴露為面向用戶的 API 是不明智的。

Samza REST的打包和配置與 Samza 的工作非常相似。一個(gè)明顯的區(qū)別是 Samza REST 必須在要運(yùn)行的每個(gè)主機(jī)上部署和執(zhí)行,而 Samza 作業(yè)通常在集群管理器的主節(jié)點(diǎn)上啟動(dòng),并且主人將作業(yè)部署到其他節(jié)點(diǎn)。

部署

Samza REST旨在成為需要從 Samza 群集節(jié)點(diǎn)執(zhí)行的所有操作的代理。它可以部署到集群中的所有主機(jī),并可能在不同主機(jī)上提供不同的用途。在這種情況下,使用不同的配置部署相同的版本的壓縮來自定義主機(jī)角色的功能可能會(huì)有用。例如,Samza REST可以部署在具有 ResourceManager(RM)主機(jī)的一個(gè)配置和 NodeManager(NM))主機(jī)的另一個(gè)配置的 YARN 集群上。

部署服務(wù)與運(yùn)行 Samza 工作非常相似。首先使用以下命令構(gòu)建壓縮:

./gradlew samza-rest:clean releaseRestServiceTar

然后從提取的位置運(yùn)行服務(wù):

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

兩個(gè)配置參數(shù)與 run-job.sh 的用途相同。

按照 入門教程 第一次快速部署和測(cè)試 Samza REST服務(wù)。

組態(tài)

Samza REST服務(wù)依賴于與 Samza Jobs 相同的配置系統(tǒng)。但是,Samza REST服務(wù)配置文件本身與 Samza 作業(yè)的配置文件完全不同。

配置可能提供核心配置的值,以及您可能添加到服務(wù)中的資源或監(jiān)視器所需的任何其他配置。包含核心服務(wù)配置和 JobsResource 的基本配置文件如下所示:

# Service port. Set to 0 for a dynamic port.
services.rest.port=9139

# JobProxy
job.proxy.factory.class=org.apache.samza.rest.proxy.job.SimpleYarnJobProxyFactory
# Installation path for hello-samza project. Your root may vary.
job.installations.path=/hello-samza-ROOT/deploy/samza

核心配置

名稱默認(rèn)描述
services.rest.port必需: Samza REST服務(wù)在本地主機(jī)上使用的端口。如果為0,則動(dòng)態(tài)選擇可用端口。
rest.resource.factory.classes
以逗號(hào)分隔的實(shí)現(xiàn)ResourceFactory的類名列表。這些工廠將用于創(chuàng)建特定的資源實(shí)例,并可以從提供的服務(wù)器配置中拉取所需的任何屬性。返回的實(shí)例將用于服務(wù)器的生命周期。如果沒有為此屬性提供任何值
rest.resource.classes
然后
org.apache.samza.rest.resources.DefaultResourceFactory
將被用作默認(rèn)值。
rest.resource.classes以服務(wù)器注冊(cè)的資源類名稱的逗號(hào)分隔列表。這些類可以像每個(gè)請(qǐng)求一樣經(jīng)常實(shí)例化,生命周期不能保證與服務(wù)器匹配。此外,實(shí)例不接收任何配置。請(qǐng)注意,生命周期和接收配置的能力是通過此屬性添加的資源與rest.resource.factory.classes之間的主要區(qū)別

記錄

Samza REST使用 SLF4J 進(jìn)行日志記錄。在 run-samza-rest-service.sh 默認(rèn)情況下,上述腳本需要在包的 bin 目錄中的 log4j.xml 和日志寫入到包根 logs 目錄。但是,由于腳本調(diào)用run-class.sh 用于運(yùn)行 Samza 作業(yè)的相同腳本,因此可以重新配置與Samza作業(yè)的日志記錄非常相似。

Samza REST服務(wù)資源  ?

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)