1. 程式人生 > >Storm簡介及使用

Storm簡介及使用

一、Storm概述
    網址:http://storm.apache.org/
    Apache Storm是一個免費的開源分散式實時計算系統。Storm可以輕鬆可靠地處理無限資料流,實現Hadoop對批處理所做的實時處理。Storm非常簡單,可以與任何程式語言一起使用,並且使用起來很有趣!
    Storm有許多用例:實時分析,線上機器學習,連續計算,分散式RPC,ETL等。風暴很快:一個基準測試表示每個節點每秒處理超過一百萬個元組。它具有可擴充套件性,容錯性,可確保您的資料得到處理,並且易
於設定和操作。 Storm集成了您已經使用的排隊和資料庫技術。Storm拓撲消耗資料流並以任意複雜的方式處理這些流,然後在計算的每個階段之間重新劃分流。 離線計算是什麼? 批量獲取資料、批量的傳輸資料、批量的儲存資料、週期性計算資料、資料視覺化 flume批量獲取資料、sqoop批量傳輸、hdfs
/hive/hbase批量儲存、mr/hive計算資料、BI 實時計算是什麼? 資料實時產生、資料實時傳輸、資料實時計算、實時展示 flume實時獲取資料、kafka實時資料儲存、Storm/JStorm實時計算、實時展示(dataV/quickBI) 二、Storm與Hadoop hadoop storm 角色: JobTracker Nimbus TaskTracker Supervisor Child Worker 應用名稱: Job Topology 程式設計介面: Mapper
/Reducer Spout/Bolt 三、storm程式設計模型 tuple:元組 是訊息傳輸的基本單元。 Spout:水龍頭 storm的核心抽象。拓撲的流的來源。Spout通常從外部資料來源讀取資料。轉換為拓撲內部的源資料。 主要方法:nextTuple() -》 發出一個新的元祖到拓撲。 ack() fail() Bolt:轉接頭 Bolt是對流的處理節點。Bolt作用:過濾、業務、連線運算。 Topology:拓撲 是一個實時的應用程式。 永遠執行除非被殺死。 Spout到Bolt是一個連線流... wordcount spark
->wordcount storm流式計算 hadoop與storm相容性 spark-core spark-sql離線計算 spark-streaming流式計算 一個團隊開發 沒有相容性問題 spark團隊:我要做一棧式開發平臺! 但凡涉及到大資料計算 我都能搞定! spark替代了mapreduce spark沒有底層儲存 依賴hdfs hdfs/mr............ 完善整個生態圈系統! mapreduce思想、程式設計 、sqoop->mr hive->mr hbasemr dfs/mapreduce/bigtable java/scala... 四、Storm叢集安裝部署 1)準備工作 zk01 zk02 zk03 storm01 storm02 storm03 2)下載安裝包 http://storm.apache.org/downloads.html 3)上傳apache-storm-1.1.0.tar.gz到/root下 4)解壓 cd /root tar -zxvf apache-storm-1.1.0.tar.gz -C /root/hd/ 5)修改配置檔案 cd /root/hd mv apache-storm-1.1.0/ storm cd storm/conf/ $ vi storm.yaml # 設定Zookeeper的主機名稱 storm.zookeeper.servers: - "hd09-1" - "hd09-2" - "hd09-3" # 設定主節點的主機名稱 nimbus.seeds: ["hd09-1"] # 設定Storm的資料儲存路徑 storm.local.dir: "/root/hd/storm/data" # 設定Worker的埠號 supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 6)建立資料夾/root/hd/storm/data mkdir /root/hd/storm/data 7)配置環境變數 vi /etc/profile 在最下面加入 export STORM_HOME=/root/hd/storm export PATH=$PATH:$STORM_HOME/bin 生效環境變數 source /etc/profile 8)分發安裝包到其他機器 cd /root/hd/ scp -r storm/ hd09-2:$PWD scp -r storm/ hd09-3:$PWD 9)啟動Zookeeper zkServer.sh start(三臺機器都執行) 10)啟動nimbus storm nimbus & (三臺機器都執行) 11) 啟動supervisor storm supervisor & (三臺機器都執行) 12)啟動ui介面 storm ui 瀏覽器輸入http://192.168.146.132:8080可以訪問 五、Storm命令列操作 1)檢視命令幫助 storm help 2)檢視版本 storm version 3)執行storm程式 storm jar [/路徑/.jar][全類名][拓撲名稱] 4)檢視當前正在執行拓撲及其狀態 storm list 5)終止拓撲程式 storm kill [拓撲名稱] 6)啟用拓撲程式 storm activate [拓撲名稱] 7)禁止拓撲程式 storm deactivate [拓撲名稱] 六、分組策略 1)Fields Grouping 按照欄位分組。相同欄位傳送到一個task中。 2)shuffle Grouping 隨機分組。輪詢。平均分配。隨機分發tuple,保證每個bolt中的tuple數量相同。 3)Non Grouping 不分組 採用這種策略每個bolt中接收的單詞不同。 4)All Grouping 廣播發送 5)Global Grouping 全域性分組 分配給task id值最小的 根據執行緒id判斷,只分配給執行緒id最小的