Storm開發中易犯的 小錯誤

Storm開發中易犯的 小錯誤

Storm是一個分佈式的、容錯的實時計算系統,遵循Eclipse Public License 1.0,Storm能夠方便地在一個計算機集羣中編寫與擴展複雜的實時計算,Storm之於實時處理,就比如Hadoop之於批處理。Storm保證每一個消息都會獲得處理,並且它很快——在一個小集羣中,每秒能夠處理數以百萬計的消息。可使用任意編程語言來作開發。編程

Storm的優勢
1. 簡單的編程模型。相似於MapReduce下降了並行批處理複雜性,Storm下降了進行實時處理的複雜性。
2. 服務化,一個服務框架,支持熱部署,即時上線或下線App.
3. 可使用各類編程語言。你能夠在Storm之上使用各類編程語言。默認支持ClojureJavaRubyPython。要增長對其餘語言的支持,只需實現一個簡單的Storm通訊協議便可。
4. 容錯性。Storm會管理工做進程和節點的故障。
5. 水平擴展。計算是在多個線程、進程和服務器之間並行進行的。
6. 可靠的消息處理。Storm保證每一個消息至少能獲得一次完整處理。任務失敗時,它會負責從消息源重試消息。
7. 快速。系統的設計保證了消息能獲得快速的處理,使用ZeroMQ做爲其底層消息隊列。
8. 本地模式。Storm有一個「本地模式」,能夠在處理過程當中徹底模擬Storm集羣。這讓你能夠快速進行開發和單元測試。服務器

然而,在開發的過程當中,因爲Stormkill Topology,經常會致使一些莫名的錯誤,好比下面的一個錯誤:框架

wKiom1gARRWgkW9NAAFt-FyX4kk062.png

形成異常的緣由就是,編程語言

沒有kill 正在運行的topology卻先kill nimbussupervisorstorm進程分佈式

解決方案:ide

刪除了配置中"storm.local.dir"的文件夾內的內容(這個是致使ERROR的主要緣由)oop

Zookeeper客戶端下   delete   /storm/assignments單元測試

Zookeeper客戶端下   delete   /storm/workerbeats測試

刪除 storm目錄下的workdir(即配置文件中配置的將TOPOLOGY序列化所放置的文件夾)spa

相關文章
相關標籤/搜索