本節書摘來自華章計算機《storm分布式實時計算模式》一書中的第2章,第2.4節,作者:(美)p. taylor goetz brian o’neill 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
現在我們已經有一個正在運作的storm叢集了,讓我們回顧一下前面說的單詞計數的例子,然後使之能夠像本地模式一樣運作在叢集環境。前面的例子使用localcluster類将topology運作在本地模式:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLi8CXlx2YpRnch9CXt92Yu4Wd5lGbh5iclB3bsVmdlR2Lc9CX6MHc0RHaiojIsJye.jpg)
https://yqfile.alicdn.com/63d28581ae69e11343f78f3caa0f0ee1cb98b094.png" >
送出一個topology到遠端叢集非常簡單,隻需要使用stormsubmitter類中同樣的方法和名稱:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLi8CXlx2YpRnch9CXt92Yu4Wd5lGbh5iclB3bsVmdlR2Lc9CX6MHc0RHaiojIsJye.jpg)
https://yqfile.alicdn.com/77a3a8ff944227119cb8e9fae77ea90535bc93dd.png" >
當開發一個storm的topology時,通常不想在本地/遠端叢集模式之間切換部署時修改代碼和重新編譯。标準的方法是使用一個if/else的條件塊,使用指令行參數來決定使用哪種模式,當指令行不帶參數時,使用本地模式,反之當使用topology名稱做參數時,使用遠端叢集模式,如下所示:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLi8CXlx2YpRnch9CXt92Yu4Wd5lGbh5iclB3bsVmdlR2Lc9CX6MHc0RHaiojIsJye.jpg)
https://yqfile.alicdn.com/e6135171e8b49a47604df8fa03f9975deadae0e7.png" >
為了更新單詞計數程式到運作中的叢集,首先在第2章的代碼目錄執行maven的編譯指令:
然後,執行storm jar指令來釋出topology:
當指令執行完畢時,你應該看到topology在storm ui裡已經激活,并且可以點選topology的名稱來檢視詳情和topology的統計資訊,如圖2-4所示。