W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
JobRunner 頁(yè)談到了 run-job.sh ,以及如何使用它來(lái)在本地(ProcessJobFactory / ThreadJobFactory)或 Yarn(YarnJobFactory)啟動(dòng)作業(yè)。在顯示執(zhí)行流程的圖中,它還顯示一個(gè)run-container.sh 的腳本。這個(gè)腳本以及一個(gè) runamam.sh 腳本是 Samza 實(shí)際調(diào)用執(zhí)行代碼的。
bin/run-am.sh
bin/run-container.sh
run-container.sh 腳本負(fù)責(zé)啟動(dòng) SamzaContainer。run -am.sh 腳本負(fù)責(zé)啟動(dòng) Samza 的 YARN 應(yīng)用程序主程序。
因此,runamam.sh 腳本僅由 YarnJob 使用,但 YarnJob 和 ProcessJob 都使用 run-container.sh。
通常,這兩個(gè)腳本捆綁在一個(gè)具有如下結(jié)構(gòu)的 tar.gz 文件中:
bin/run-am.sh
bin/run-class.sh
bin/run-job.sh
bin/run-container.sh
lib/*.jar
要運(yùn)行 Samza 作業(yè),請(qǐng)解壓縮其 tar.gz 文件,然后執(zhí)行 “JobRunner” 部分中定義的 run-job.sh 腳本。這種包裝方案有很多有趣的含義。首先,您會(huì)注意到該包中沒(méi)有配置。其次,您將注意到,lib 目錄包含運(yùn)行 Samza 作業(yè)所需的所有 JAR。
配置與 Samza 作業(yè)打包脫鉤的原因是它允許更新配置,而無(wú)需重新構(gòu)建整個(gè) Samza 包。這樣,當(dāng)您只需要調(diào)整一個(gè)參數(shù),并且不想擔(dān)心您的包是從哪個(gè)分支構(gòu)建的,或者是否處于穩(wěn)定狀態(tài)時(shí),這樣可以讓每個(gè)人都容易生活。它還具有強(qiáng)制配置在運(yùn)行時(shí)完全解決的附加好處。這意味著在調(diào)用 run-job.sh(使用 -config-path 和 -config-provider 參數(shù))的時(shí)候解決了作業(yè)的配置,從那時(shí)起,配置是不可變的,并通過(guò)它需要由 Samza(和 YARN,如果你使用它)。
第二個(gè)聲明,您的 Samza 包中包含所有需要運(yùn)行的 JAR,這意味著 Samza 包完全是自包含的。這允許 Samza 作業(yè)在獨(dú)立的 Samza 版本上運(yùn)行,而不會(huì)相互沖突。這與 Hadoop 不同,Hadoop 從工作正在運(yùn)行的本地機(jī)器(使用環(huán)境變量)中拉入 JAR。使用 Samza,您可能會(huì)在0.7.0版本上運(yùn)行您的工作,而其他人可能會(huì)在0.8.0版本上運(yùn)行其工作。這沒(méi)有問(wèn)題。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: