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