您好,登錄后才能下訂單哦!
本篇內容主要講解“Storm原理和架構是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Storm原理和架構是什么”吧!
案例
統計用戶ip所在地域的統計值
典型應用場景
請求應答(同步)
流式處理 (異步)
-逐條處理
數據之間無關系:如實時日志格式標準化入庫。
-分析處理
數據之間有關系(聚合等):如日志pv/uv統計、訪問熱點統計
DGA計算模型
tuple:數據處理單元
stream:持續的tuple流
spout:從外部獲取數據,輸出原始tuple
bolt:接收spout/bolt輸出的tuple,處理、輸出新tuple
grouping:tuple從上游到某個下游多個并發task的分組方式
--shuffleGrouping:隨機發給某個下游task
--fieldsGrouping:按照某幾個字段做hash取模,發給對應task
--allGrouping:發給下游全部task
Topology:一個應用的spout,bolt,grouping組合
Storm原理和架構
nimbus:集群的master,負責管理supervisor、調度topology
supervisor:負責運行topology的worker
worker:負責實際的計算和網絡通信
zookeeper:負責存儲以上模塊的狀態,做到高可用。
work是進程,是分配資源的單位,一個worker可以有多個executor,executor是線程,是處理的單位
executor執行spout.nextTuple()或bolt.execute(),調用emit生成新的tuple,放到executor的transfer queue
executor transfer thread 把自己transfer queue里面的tuple放到worker transfer queue
worker transfer thread 把transer queue里面的tuple發送到遠程的worker
worker receive thread 分別從網絡收數據,把tuple放到對應executor的receive queue
executor receive thread 從自己的reveive queue取出tuple,調用bolt.execute()
storm實戰
啟動drpc: bin/storm drpc
啟動logviewr: bin/storm viewer
JavaAPI
-spout
nextTuple() 回調函數,循環觸發
ack(id) 回調函數,消息成功處理時觸發
fail(id) 回調函數,消息超時時觸發
-bolt
execute(Tuple input) 回調函數,數據觸發
collector.emit(tuple):通過collector向下游發送tuple
collector.ack(tuple):通過collector確認已經成功處理輸入tuple
不一定要用java,有shellBolt
DAG圖:無回路有向圖(Directed Acyclic Graph)
到此,相信大家對“Storm原理和架構是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。