storm架構及原理

2022-05-30 20:42:09 字數 1363 閱讀 5785

storm 架構與原理

1.1 storm是什麼

1.2 storm 與傳統的大資料

2.1 hadoop架構簡介

2.2 hadoop架構的瓶頸

3.1 storm架構的設計

storm架構中使用spout/bolt程式設計模型來對訊息進行流式處理。訊息流是storm中對資料的基本抽象,乙個訊息流是對一條輸入資料的封裝,源源不斷輸入的訊息流以分布式的方式被處理,spout元件是訊息生產者,是storm架構中的資料輸入源頭,它可以從多種異構資料來源讀取資料,並發射訊息流,bolt元件負責接收spout元件發射的資訊流,並完成具體的處理邏輯。在複雜的業務邏輯中可以串聯多個bolt元件,在每個bolt元件中編寫各自不同的功能,從而實現整體的處理邏輯。

3.2 storm架構與hadoop架構的對比

3.3 storm的優點

解決方案

開發商型別

描述storm

twitter

流式處理

twitter 的新流式大資料分析解決方案

s4yahoo!

流式處理

來自 yahoo! 的分布式流計算平台

hadoop

apache

批處理mapreduce 正規化的第乙個開源實現

spark

uc berkeley amplab

批處理支援記憶體中資料集和恢復能力的最新分析平台

disco

nokia

批處理nokia 的分布式 mapreduce 框架

hpcc

lexisnexis

批處理hpc 大資料集群

5.1 topology

下圖是storm的資料互動圖,可以看出兩個模組nimbus和supervisor之間沒有直接互動。狀態都是儲存在zookeeper上,worker之間通過netty傳送資料。storm與zookeeper之間的互動過程,暫時不細說了。重要的一點:storm所有的元資料資訊儲存在zookeeper中!

5.2 資料模型turple

5.3 worker(程序)

5.4 spouts

5.5 bolts

5.6 reliability

5.7 tasks6.1 stream groupings

6.2 storm 記錄級容錯

可能有些細心的同學會發現,容錯過程存在乙個可能出錯的地方,那就是,如果生成的tuple id並不是完全各異的,acker可能會在訊息單元完全處理完成之前就錯誤的計算為0。這個錯誤在理論上的確是存在的,但是在實際中其概率是極低極低的,完全可以忽略。

6.3 storm的事務拓撲7.1 example of a running topology

7.2 併發度的配置有效的順序

Storm架構執行原理

storm集群主要包含nimbus和supervisor兩部分,集群協調依賴於外部zookeeper。storm特性 1 分布式計算 2 高效能 低延時 3 可擴容 4 高度容錯 5 資料可靠 ack nimbus 集群管理中心,支援ha,負責接收客戶端提交的拓撲 topology 將任務分發給su...

Spark架構及原理

原則一 避免建立重複的rdd 原則二 盡可能用同乙個rdd 原則三 對多次使用的rdd進行持久化 如何選擇一種最合適的持久化策略 原則四 盡量避免使用shuffle類運算元 原則五 使用map side預聚合的shuffle操作 groupbykey 和 reducebykey 原則六 使用高效能的...

storm系統架構學習

storm架構如下圖所示 1 主控節點 master node 執行storm nimbus後台服務的節點 nimbus 它是storm系統的中心,負責接收使用者提交的作業 如同spark submit一樣 即為jar包形式儲存的topology 通過zookeeper向每個工作節點分配處理任務 有...