工做須要接觸到jstorm JStorm集羣包含兩類節點:主控節點(Nimbus)和工做節點(Suprvisor)html
先了解他是幹什麼的
分佈式實時計算引擎,就是你給他數據,按照你編寫的規則,他處理完
標準解釋:用戶按照規定的變成規範實現一個任務,將任務放到jstorm上,jstorm就將任務7*24小時調度起來
優勢:開發很是迅速,容易上手,就像有水龍頭 -》污水池處理 --》下游
擴展性極好,一個worker壞了調度器nimbus會立刻分配另一個
準確性比較高,採用了acker機制,保證數據不丟失,
使用場景:日誌分析,管道系統,消息轉化,統計分析
這幾個術語要知道
角色 做用
Nimbus 調度器 分配任務的
Supervisor Worker的代理角色,負責Kill掉Worker和運行Worker 污水池處理的
Worker Task的容器 工人
Task 任務的執行者 工人
ZooKeeper 系統的協調者 系統協調者
stream 流 流是一個無間斷的連續的tuple元值,
spout 原始元祖的源頭,就像是水龍頭,這個多是消息中間件如MQ,Kafka,TBNofity 不間斷髮出消息
有了源頭,有了tuple,拿着這些數據的處理過程就是Bolt
Bolt 消費任意數量的輸入流,污水池 ,
你的spout打開了,想獲得那種類型的水就打開那種類型的Bolt,處理完就會再進行下一步處理或者流向別的容器
Tuple value list 值列表
Topology 有向無環圖即拓撲,一個拓撲就是一個數據流轉圖,途中標註每個節點是一個spout仍是bolt,把元祖數據發送到那個bolt,
worker和task
worker表示一個進程,tash表示一個線程,一個進程對應多個線程,
Supervisor是JStorm中的工做節點,相似於MR的TT,subscribe zookeeper的任務調度結果數據,根據任務調度狀況啓動/中止工做進程Worker。同時Supervisor須要按期向zookeeper寫入活躍端口信息以便Nimbus監控。Supervisor不執行具體處理工做,全部的計算任務都交Worker完成。從整個架構上看,Supervisor處在整個JStorm三級管理架構的中間環節,輔助管理任務調度和資源管理工做。
Supervisor單節點架構如上圖所示,初始化時啓動進程Supervisor,根據Nimbus分配的任務狀況觸發啓動/停用Worker JVM進程,其中每一個Worker進程啓動一個或多個Task線程,其中Task須同屬單個Topology。從整個Supervisor節點來看運行多個JVM進程,包括一個Supervisor進程和一個或多個Worker進程。
不一樣角色狀態經過不一樣的方式維護。其中Task經過hb直接將包括時間信息和當前Task的統計信息寫到zookeeper;Worker按期將包括Topology id,端口,Task id集合及當前時間寫入本地;Supervisor按期將包括時間及節點資源(端口集合)寫到zookeeper,同時從zookeeper讀取任務調度結果,根據結果啓動/停用Worker進程。
架構
記住這個圖片基本上沒什麼打的困難了入門了就,分佈式
瞭解這個也得知道一個流的概念,就是水龍頭 -》污水池處理 --》下游ide
這個連接比較形象https://www.cnblogs.com/smartloli/p/4810362.htmloop