離線計算:批量獲取資料、批量傳輸資料、週期性批量計算資料、資料展示;
代表技術:sqoop批量匯入資料、hdfs批量儲存資料、mapreduce批量計算資料、hive批量計算資料
流式計算:資料實時產生、資料實時傳輸、資料實時計算、實時展示
代表技術:flume實時獲取資料、kafka/metaq實時資料儲存、storm/jstorm實時資料計算、redis實時結果快取、持久化儲存(mysql)
一句話總結:將源源不斷產生的資料實時收集並實時計算,盡可能快的得到計算結果
storm用來實時處理資料,特點:低延遲、高可用、分布式、可擴充套件、資料不丟失。提供簡單容易理解的介面,便於開發。
1. storm用於實時計算,hadoop用於離線計算;
2. storm處理的資料儲存在記憶體中,源源不斷;hadoop處理的資料儲存在檔案系統中,一批一批;
3. storm的資料通過網路傳輸進來;hadoop的資料儲存在磁碟中;
4. storm與hadoop的程式設計模型相似;
元件說明補充:
nimbus:負責資源分配和任務排程。
supervisor:負責接受nimbus分配的任務,啟動和停止屬於自己管理的worker程序。通過配置檔案設定當前supervisor上啟動多少個worker。
worker:執行具體處理元件邏輯的程序(其實就是乙個jvm)。worker執行的任務型別只用兩種,一種是spout任務,一種是bolt任務。
task:worker中每乙個spout/bolt的執行緒稱為乙個task。在storm0.8之後,task不再與物理執行緒對應,不同spout/bolt的task可能會共享乙個物理執行緒,該執行緒稱為executor。
zookeeper:儲存任務分配資訊、心跳資訊、元資料資訊。
併發度:使用者指定的乙個任務,可以被多個執行緒執行,併發度的數量等於執行緒的數量。乙個任務的多個執行緒,會被執行在多個worker(jvm)上,有一種類似於平均演算法的負載均衡策略。盡可能減少網路io,和hadoop中的mapreduce中的本地計算的道理一樣。
元件說明補充:
datasource:外部資料來源。
spout:接收外部資料來源的元件,將外部資料來源轉化成storm內部的資料,以tuple為基本的傳輸單元下發給bolt。
tuple:storm內部中資料傳輸的基本單元,裡面封裝了乙個list物件,用來儲存資料。
streamgrouping:資料分組策略。7種,shufflegrouping(random函式)、non grouping(random函式)、fieldgrouping(hash取模)、local or shufflegrouping、本地或隨機、優先本地。
worker與topology
乙個worker只屬於乙個topology,每個worker中執行的task只能屬於這個topology。反之,乙個topology包含多個worker,其實就是這個topology執行在多個worker上。乙個topology要求的worker數量如果不被滿足,集群在任務分配時,根據現有的worker先執行topology。如果當前集群中worker數量為0,那麼最新提交的topology將只會被標識active,不會執行。只有當集群有了空閒資源之後,才會被執行。
storm有許多簡單且有用的命令可以用來管理拓撲,它們可以提交、殺死、禁用、再平衡拓撲。
storm jar 【jar路徑】【拓撲包名.拓撲類名】【拓撲名稱】
storm jar examples/storm-starter/storm-starter-topologies-0.9.6.jar storm.starter.wordcounttopology wordcount
storm kill 【拓撲名稱】 -w 10 (執行kill命令時可以通過-w [等待秒數] 指定拓撲停用以後的等待時間)
storm kill topology-name -w 10
storm deactivte 【拓撲名稱】
storm deactivte topology-name
我們能夠掛起或停用執行中的拓撲。當停用拓撲時,所有已分發的元組都會得到處理,但是spouts的nexttuple方法不會被呼叫。銷毀乙個拓撲,可以使用kill命令。它會以一種安全的方式銷毀乙個拓撲,首先停用拓撲,在等待拓撲訊息的時間段內允許拓撲完成當前的資料流。
storm activate 【拓撲名稱】
storm activate topology-name
storm rebalance 【拓撲名稱】
storm rebalance topology-name
再平衡使你重新分配集群任務。這是個很強大的命令。比如,你向乙個執行中的集群增加了節點。再平衡命令將會停用拓撲,然後在相應超時時間之後重新分配工人,並重啟拓撲。
Storm基本原理概念及基本使用
離線計算 批量獲取資料 批量傳輸資料 週期性批量計算資料 資料展示 代表技術 sqoop批量匯入資料 hdfs批量儲存資料 mapreduce批量計算資料 hive批量計算資料 流式計算 資料實時產生 資料實時傳輸 資料實時計算 實時展示 代表技術 flume實時獲取資料 kafka metaq實時...
Storm基本原理
過去的十年見證了資料處理領域的一次革命。mapreduce,hadoop以及其它相關的技術使得我們可以儲存與處理的資料達到了過去想都不敢想的量級。不幸的是,這些資料處理技術並不能用於實時系統。本身這些技術也不是為了用於實時系統而生的。我們也沒有任何方式可以將hadoop改造以用於實時系統 實時資料處...
storm 文件(2) 基本原理
storm 文件 2 基本原理 過去十年間,很多資料處理解決方案不停湧現。mapreduce hadoop以及相關技術使得儲存和處理資料在規模上是以前不可想象的。不幸的是,這些資料處理技術沒有實時系統,同時上述技術也沒打算這樣做。沒有辦法使hadoop程式設計實時系統 實時資料處理與批處理有一系列不...