1. 程式人生 > >Storm個人總結,有興趣的可以瞅瞅喔。。。。

Storm個人總結,有興趣的可以瞅瞅喔。。。。

在學習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 :調整元件使用的執行緒數量