離線計算
離線計算:批量獲取資料、批量傳輸資料、週期性批量計算資料、資料展示
代表技術:sqoop批量匯入資料、
hdfs
批量儲存資料、
mapreduce
批量計算資料、
hive
批量計算資料、azkaban/oozie
任務排程
流式計算
流式計算:資料實時產生、資料實時傳輸、資料實時計算、實時展示
代表技術:flume實時獲取資料、
kafka/metaq實時資料儲存、storm/jstorm實時資料計算、redis實時結果快取、持久化儲存(mysql)。
一句話總結:將源源不斷產生的資料實時收集並實時計算,盡可能快的得到計算結果
離線計算和實時計算的區別
實時收集、實時計算、實時展示
storm
storm用來實時處理資料,特點:低延遲、高可用、分布式、可擴充套件、資料不丟失。提供簡單容易理解的介面,便於開發。
storm和hadoop的區別
(storm實時流處理,每秒可處理數萬條訊息;hadoop批處理,hdfs和mapreduce處理大量資料通常需要幾分鐘到幾小時)
storm用於實時計算,
hadoop
用於離線計算。
storm處理的資料儲存在記憶體中,源源不斷;
hadoop
處理的資料儲存在檔案系統中,一批一批。
storm的資料通過網路傳輸進來;
hadoop
的資料儲存在磁碟中。
storm與
hadoop
的程式設計模型相似
job:任務名稱
jobtracker:專案經理
tasktracker:開發組長、產品經理
child:負責開發的人員
topology:任務名稱
nimbus:專案經理
supervisor:開發組長、產品經理
worker:開發人員
spout/bolt:開人員中的兩種角色,一種是伺服器開發、一種是客戶端開發
storm應用場景
storm用來實時計算源源不斷產生的資料,如同流水線生產一樣。
l日誌分析
從海量日誌中分析出特定的資料,並將分析的結果存入外部儲存器用來輔佐決策。
l管道系統
將乙個資料從乙個系統傳輸到另外乙個系統,比如將資料庫同步到hadoop
l訊息轉化器
將接受到的訊息按照某種格式進行轉化,儲存到另外乙個系統如訊息中介軟體
storm核心元件(重要)
nimbus(主節點):負責資源分配和任務排程。
supervisor(從節點):負責接受
nimbus
分配的任務,啟動和停止屬於自己管理的
worker
程序。---通過配置檔案設定當前
supervisor
上啟動多少個
worker
。worker的數量根據埠號來的!
worker(程序):執行具體處理元件邏輯的程序(其實就是乙個jvm)。
worker
執行的任務型別只有兩種,一種是
spout
任務,一種是
bolt
任務。task(執行緒):
worker
中每乙個
spout/bolt
的執行緒稱為乙個
task.
在storm0.8
之後,task
不再與物理執行緒對應,不同
spout/bolt
的task
可能會共享乙個物理執行緒,該執行緒稱為
executor
。task=執行緒=executor
zookeeper(分布式協調服務):儲存任務分配的資訊、心跳資訊、元資料資訊。
storm程式設計模型(重要)
中執行的乙個實時應用程式的名稱。(拓撲)
spout:在乙個
topology
中獲取源資料流的元件。 通常情況下spout會從外部資料來源中讀取資料,然後轉換為
topology
內部的源資料。
bolt:接受資料然後執行處理的元件
,使用者可以在其中執行自己想要的操作。
tuple:一次訊息傳遞的基本單元,理解為一組訊息就是乙個
tuple
。stream:表示資料的流向。
流式計算一般架構圖(重要)
l 其中flume用來獲取資料。
l kafka用來臨時儲存資料。
l strom用來計算資料。
l redis是個記憶體資料庫,用來儲存資料。
Storm核心元件介紹
nimbus 主控節點 用於接收,提交任務,來分配集群任務,集群的監控 zookeeper 儲存storm集群的資料儲存 心跳 集群狀態 nimbus任務分配到supervisor 分組策略 1 fields grouping 按照字段分組,相同字段傳送到同乙個task中 2 shuffle gro...
Storm核心元件 程式設計模型
storm簡介 storm是用來做實時計算的框架,所以介紹storm之前需要知道什麼是流式計算。流式計算 資料實時產生 資料實時傳輸 資料實時計算 實時展示 代表技術 flume實時獲取資料 kafka metaq實時資料儲存 storm jstorm實時資料計算 redis實時結果快取 持久化儲存...
storm核心元件
nimbus 負責資源分配和任務排程。supervisor 負責接受nimbus分配的任務,啟動和停止屬於自己管理的worker程序。通過配置檔案設定當前 supervisor 上啟動多少個 worker worker 執行具體處理元件邏輯的程序。worker執行的任務型別只有兩種,一種是spout...