W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
使用一個名為 run-job.sh 的腳本啟動 Samza 作業(yè)。
samza-example/target/bin/run-job.sh \
--config-factory=org.apache.samza.config.factories.PropertiesConfigFactory \
--config-path=file://$PWD/config/hello-world.properties
您為 run-job.sh 腳本提供兩個參數(shù):一個是配置位置,另一個是用于讀取配置文件的工廠類。run-job.sh 腳本實際上是在執(zhí)行一個名為 JobRunner 的 Samza 類。JobRunner 使用您的ConfigFactory 從配置路徑獲取一個 Config 對象。
public interface ConfigFactory {
Config getConfig(URI configUri);
}
Config 對象只是 Map 的包裝,有一些不錯的幫助方法??梢粤⒓词褂玫氖牵琒amza 隨附了 PropertiesConfigFactory,但開發(fā)人員可以實現(xiàn)任何他們希望的 ConfigFactory。
一旦 JobRunner 得到您的配置,它會將您的配置提供給由 “job.factory” 屬性定義的 StreamJobFactory 類。Samza 擁有三個作業(yè)工廠實現(xiàn):ThreadJobFactory,ProcessJobFactory 和YarnJobFactory。StreamJobFactory 的職責(zé)是給 JobRunner 一個可以運行的工作。
public interface StreamJob {
StreamJob submit();
StreamJob kill();
ApplicationStatus waitForFinish(long timeoutMs);
ApplicationStatus waitForStatus(ApplicationStatus status, long timeoutMs);
ApplicationStatus getStatus();
}
一旦 JobRunner 獲得了工作,它就會在 job 上調(diào)用 submit()。這個方法是告訴 StreamJob 實現(xiàn)來啟動 SamzaContainer。在 LocalJobRunner 的情況下,它使用一個 run-container.sh 腳本在單獨的進(jìn)程中執(zhí)行 SamzaContainer,這將在您運行 run-job.sh 的計算機(jī)上本地啟動一個 SamzaContainer。
當(dāng)您使用 YARN 時,此流程略有不同,稍后將介紹。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: