Apache Storm


Apache Storm  

1.  Apache Storm是什么

2.  Apache Storm核心概念

3.  Storm原理架構

4.  Storm集群安裝部署

5.  啟動storm ui、Nimbus和Supervisor

 

一、Apache Storm是什么

Apache Storm是自由開源的分布式實時計算系統,擅長處理海量數據,適用於數據實時處理而非批處理。

批處理使用的大多是鼎鼎大名的hadoop或者hive,作為一個批處理系統,hadoop以其吞吐量大、自動容錯等優點,在海量數據處理上得到了廣泛的使用。但是,hadoop不擅長實時計算,因為它天然就是為批處理而生的,這也是業界一致的共識。否則最近幾年也不會有s4,storm,puma這些實時計算系統如雨后春筍般冒出來啦。

舉個搜索場景中的例子,當一個賣家發布了一條寶貝信息時,他希望的當然是這個寶貝馬上就可以被賣家搜索出來、點擊、購買啦,相反,如果這個寶貝要等到第二天或者更久才可以被搜出來,估計就會有不少損失了。 再舉一個推薦的例子,如果用戶昨天在淘寶上買了一雙襪子,今天想買一副泳鏡去游泳,但是卻發現系統在不遺余力地給他推薦襪子、鞋子,根本對他今天尋找泳鏡的行為視而不見,這樣商家的利益就有所損失。這是因為后台系統做的是每天一次的全量處理,而且大多是在夜深人靜之時做的,那么客戶今天白天做的事情要到明天才能反映出來。這也就是為什么需要實時處理的原因。

 

二、Apache Storm核心概念

1. Nimbus:Storm集群主節點,負責資源分配和任務調度。我們提交任務和截止任務都是在Nimbus上操作的。

     一個Storm集群只有一個Nimbus節點。

2. Supervisor:Storm集群工作節點,接受Nimbus分配任務,管理所有Worker。

3. Worker:工作進程,每個工作進程中都有多個Task。

4. Task:任務,每個Spout和Bolt都是一個任務,每個任務都是一個線程。

5. Topology:計算拓撲,包含了應用程序的邏輯。

6. Stream:消息流,關鍵抽象,是沒有邊界的Tuple序列。

7. Spout:消息流的源頭,Topology的消息生產者。

8. Bolt:消息處理單元,可以過濾、聚合、查詢數據庫。

9. Stream grouping:消息分發策略,一共6種,定義每個Bolt接受何種輸入。

10. Reliability:可靠性,Storm保證每個Tuple都會被處理。

 

三、Storm原理架構

1. Storm

      

Zookeeper集群在Storm集群中的作用:

Zookeeper集群負責Nimbus節點和Supervior節點之間的通信,監控各個節點之間的狀態。

        比如通常我們提交任務的時候是在Nimbus節點上執行的,Nimbus節點通過zk集群將任務分發下去,而Supervisor是真正執行任務的地方。

         Nimbus節點通過zk集群監控各個Supervisor節點的狀態,當某個Supervisor節點出現故障的時候,

         Nimbus節點就會通過zk集群將那個Supervisor節點上的任務重新分發,在其他Supervisor節點上執行。這就意味着Storm集群也是高可用集群,

            如果Nimbus節點出現故障的時候,整個任務並不會停止,但是任務的管理會出現影響,通常這種情況下我們只需要將Nimbus節點恢復就可以了。

            Nimbus節點不支持高可用,這也是Storm目前面臨的問題之一。不過一般情況下,Nimbus節點的壓力不大,通常不會出現問題。

一般情況下,Zookeeper集群的壓力並不大,一般只需要部署3台就夠了。Zookeeper集群在Storm集群中邏輯上是獨立的,但在實際部署的時候,一般會將zk節點部署在Nimbus節點或Supervisor節點上。

 

2. 數據處理流程圖

storm處理數據的特點:數據源源不斷,不斷處理。

 

     3. 拓撲圖分析

  storm中是沒有數據存儲結構的,我們需要自己設計數據落地接口,指明數據存儲到哪一部分中。Storm本身是不存儲數據的。

      

 

 

參照於: https://www.cnblogs.com/zhaojiankai/p/7257617.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM