Storm 第一章 核心組件及編程模型

1 流式計算

  流式計算:數據實時產生、實時傳輸、實時計算、實時展現mysql

  表明技術:Flume實時獲取數據、Kafka/metaq實時數據存儲、Storm/JStorm實時數據計算、Redis實時結果緩存、持久化存儲(mysql)。sql

  一句話總結:將源源不斷產生的數據實時收集並實時計算,儘量快的獲得計算結果。數據庫

2 Storm是什麼

  Storm 是用來實時處理數據,特色:低延遲、高可用、分佈式、可擴展、數據不丟失,提供簡單容易理解的接口,便於開發。編程

3 Storm 與Hadoop的區別

  Storm用於實時計算,Hadoop用於離線計算。緩存

  Storm處理的數據保存在內存中,源源不斷;Hadoop處理的數據保存在文件系統中,一批一批。網絡

  Storm處理的數據經過網絡傳輸進來;Hadoop的數據保存在磁盤。架構

  Storm與Hadoop編程模型類似。分佈式

4 運用場景

  4.1 日誌分析

    從海量日誌中分析出特定的數據,並將分析結果存入外部存儲器用來輔助決策。oop

  4.2 管道決策

    將一個數據從一個系統傳輸到另一個系統,好比將數據同步到Hadoop。線程

  4.3 消息轉換器

    將接受到的消息按照某種格式進行轉化,存儲到另一個系統好比消息中間件。

5 Storm核心組件

  

  5.1 組件功能:

    Nimbus:負責資源分配和任務調度

    Supervisor:負責接收nimbus分配的任務,啓動和中止屬於本身管理的worker進程。經過配置文件設置當前supervisor上啓動多少個worker。

    Worker:運行具體處理組件邏輯的進程,Worker運行的任務類型只有兩種,一種是Spout任務,一種是bolt任務。

    Task:worker中每個spout/bolt的線程稱爲一個task。在storm0.8以後,task再也不與物理線程對應,不一樣的spout/bolt的task可能會共享一個物理線程,該線程稱之爲executor。

6 Storm編程模型

  

  6.1 組件解釋

    Topology:Storm中運行的一個實時應用程序的名稱。(拓撲)

    Spout:在一個topology中獲取源數據流的組件。一般狀況下spout會從外部數據源中讀取數據,而後轉換爲topology內部的源數據。

    Bolt:接受數據而後執行處理的組件,用戶能夠在其中執行本身想要的操做。

    Tuple:一次消息傳遞的基本單元,理解爲一組消息就是一個Tuple。

    Stream:表示數據的流向。

7 流式計算通常架構圖

  

  其中flume用來獲取數據

  Kafka用來臨時保存數據

  Strom用來計算數據

  Redis是個內存數據庫,用來保存數據。

相關文章
相關標籤/搜索