您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“storm日志如何debug”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
開發(fā)storm應(yīng)用時(shí)可能需要用到自身的配置文件。storm.yaml只能提供給storm自身的配置系統(tǒng)使用。針對(duì)后臺(tái)最廣泛使用的ini配置文件,推薦使用ini4j。它是一個(gè)輕量的ini配置文件讀取器、具有簡單易懂的api。
請(qǐng)?jiān)趕pout和bolt的prepare方法中讀取配置文件。任何資源類的初始化都需要放到prepare方法中(比如數(shù)據(jù)庫連接,和讀取文件索引類等)。
I 打包storm程序請(qǐng)不要把依賴打進(jìn)去,依賴需要單獨(dú)部署;
II 你需要一種有效的機(jī)制將程序的依賴包分發(fā)到所有的storm節(jié)點(diǎn)上(可上傳到nimbus,通過rsync做目錄同步);
III 你需要分發(fā)的依賴包集合=你的程序所有的依賴包集合 ? storm依賴包與你的依賴包的交集(否則topology會(huì)初始化失?。?/p>
IV 在所有supervisor節(jié)點(diǎn)上自定義配置文件的內(nèi)容和路徑需要完全一致,路徑不一致topology會(huì)初始化失敗,內(nèi)容不一致,程序的行為則是未定義的;
在經(jīng)過一番辛勤勞動(dòng)之后,你的程序編譯成功了。但是,這不代表著它會(huì)按照你設(shè)定的行為去運(yùn)行。如何debug成為了一個(gè)問題。
最基本也是最原始的思路就是log。在所有你認(rèn)為可能出錯(cuò)的地方log(尤其是在prepare方法中,這里通常做的是資源類的初始化,如果它們初始化失敗,topology則會(huì)初始化失敗,這樣能幫助你快速定位到錯(cuò)誤原因)。
Storm默認(rèn)與log4j集成。你可以再$STORM_HOME/log4j/目錄下找log4j的配置文件。通過調(diào)整它來控制log4j的行為。
不要急于在真實(shí)環(huán)境下部署你的程序。想要測試的話,還是首先在Local mode模式下觀察吧。如果在local mode下測試的結(jié)果是符合預(yù)期的,而在真實(shí)環(huán)境下出錯(cuò),一般應(yīng)是非代碼的因素造成的。你需要檢查節(jié)點(diǎn)的資源文件、自定義配置文件、依賴包等等。此外在local mode下,所有日志打印信息是直接輸出到屏幕上的,這樣方便你看的更加清楚。
下面介紹下storm日志的結(jié)構(gòu):
所有的日志文件都存放在$STORM_HOME/logs/路徑下。
在nimbus節(jié)點(diǎn)上:nimbus.log記錄的是nimbus啟動(dòng)過程中的輸出信息,包括啟動(dòng)時(shí)間和各個(gè)worker和task初始化過程中打印信息等等。ui.log則記錄的storm監(jiān)控程序啟動(dòng)過程中的輸出信息,包括啟動(dòng)時(shí)間等等。
在supervisor節(jié)點(diǎn)上:supervisor.log記錄的則是supervisor的相關(guān)啟動(dòng)信息。worker-XXX(一個(gè)supervisor節(jié)點(diǎn)通常部署了多個(gè)worker)記錄的是消息傳遞、和任務(wù)執(zhí)行過程中的輸出信息(也就是你代碼中的日志打印部分)。storm的設(shè)計(jì)目標(biāo)之一是讓任務(wù)(task)部署對(duì)用戶透明。這樣造成了:當(dāng)你需要觀察一個(gè)task的日志輸出信息時(shí),你不知道到哪個(gè)節(jié)點(diǎn)的哪個(gè)日志文件去找這個(gè)信息。因此,還是強(qiáng)烈建議在local mode下debug你的程序,然后在真實(shí)環(huán)境做好日志告警。
“storm日志如何debug”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。