Storm個人總結,有興趣的可以瞅瞅喔。。。。
阿新 • • 發佈:2019-01-03
在學習Storm的時候我們先要自己搜點有關Storm的簡介,要對它充滿好奇感!好了廢話不多說,言歸正傳。
一.Storm是什麼?
storm是一個流式實時計算框架。能實現高頻[指實時]資料和大規模資料的實時處理 二.Storm的組成有哪些?Topology 用於封裝一個實時計算應用程式的邏輯,類似於Hadoop的MapReduce Job
Stream 訊息流,是一個沒有邊界的tuple序列,這些tuples會被以一種分散式的方式並行地建立和處理
Spouts 訊息源,是訊息生產者,他會從一個外部源讀取資料並向topology裡面面發出訊息:tuple
Bolts 訊息處理者,所有的訊息處理邏輯被封裝在bolts裡面,處理輸入的資料流併產生新的輸出資料流,可執行過濾,聚合,查詢資料庫等操作
Task 每一個Spout和Bolt會被當作很多task在整個叢集裡面執行,每一個task對應到一個執行緒.
Stream groupings 訊息分發策略,定義一個Topology的其中一步是定義每個tuple接受什麼樣的流作為輸入,stream grouping就是用來定義一個stream應該如何分配給Bolts們.
三.storm的可靠性?
第一叢集的可靠性:zk儲存了Nimbus和多個Supervisor的狀態資訊,如果宕機可以重啟程序或機器再次讀取Zk中的狀態資訊讓topology恢復到之前的狀態。
第二acker機制:每一個tuple預設都會伴隨一個acker執行緒來保證每一個tuple的傳送成功這樣可以保證資料的不丟失也可以手動關閉。
四.storm叢集:一主多從 主節點:nimbus 負責分發程式碼,分配任務 從節點:supervisor 生產worker(程序),執行任務 主從節點的狀態都維護在zookeeper中 nimbus ---->zookeeper-->supervisor 五.storm的安裝步驟 1:先安裝zk叢集 192.168.8.115 192.168.8.116 192.168.8.117 2:strom叢集 主節點:192.168.8.117 從節點:192.168.8.115、116 修改storm的配置檔案 vi storm/conf/storm.yaml storm.zookeeper.servers: - " 192.168.8.115" - "192.168.8.116" - "192.168.8.117" nimbus.host: "192.168.8.117" storm.local.dir: "/usr/local/storm/tmp" supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 注意:storm.zookeeper.servers和nimbus.host是必須要修改的 storm.local.dir建議修改 supervisor.slots.ports可選 注意:storm叢集中所有節點的基本配置一樣 把170上的storm拷貝到其他節點 scp -rq storm/ 192.168.1.172:/usr/local/ scp -rq storm/ 192.168.1.173:/usr/local/ 3:啟動不同節點的服務 主節點:192.168.1.171(ui可以在任何節點啟動,建議只在主節點啟動即可) nimbus:nohup bin/storm nimbus >/dev/null 2>&1 & ui:nohup bin/storm ui >/dev/null 2>&1 & http://192.168.1.171:8080 從節點:192.168.1.172、173 supervisor:nohup bin/storm supervisor >/dev/null 2>&1 & logviewer:nohup bin/storm logviewer >/dev/null 2>&1 & 相當於把storm的logs目錄中的檔案釋出成web專案(可以在webui介面直接訪問logs目錄中的日誌) 注意:如果發現在ui介面無法查詢日誌, 1:logviewer程序沒啟動 2:從節點的主機名和ip的對映關係沒有再本機配置 4:提交一個topology到叢集 提交 bin/storm jar storm.jar cn.crxy.storm_4.RemoteStormTopology aaa 停止: 1:ui頁面做,點選進入topology的明細頁面 2:在命令列中 bin/storm list :檢視storm中的所有topology資訊 bin/storm kill RemoteStormTopology 注意:提交和停止在所有節點都可以 Netty:是一個數據傳輸框架,storm中worker之間通訊使用的是netty storm rebalance mytopology -w 10 -n 5 -e blue-spout=3 -e yellow-bolt=10 -w :waittime -n :numworker -e :調整元件使用的執行緒數量