共計 1480 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章主要介紹“storm 處理數據的兩種模式是什么”,在日常操作中,相信很多人在 storm 處理數據的兩種模式是什么問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”storm 處理數據的兩種模式是什么”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
1、Storm 簡介
storm 是一個分布式、容錯的實時計算系統,起先被托管在 GitHub 上,遵循 Eclipse Public License 1.0 。Storm 是由 BackType 開發的實時處理系統,由 Twitter 開源
2013 年,Storm 進入 Apache 社區進行孵化;
2014 年 9 月,晉級為 Apache 頂級項目
官網 http://storm.apache.org/
hadoop 和 storm 的區別:hadoop 反復啟動停止,數據反復落地耗費時間,storm 采用流式處理,數據不落地
數據來源:hadoop 的數據是 hdfs 上的 TB 級別數據,storm 是實時新增的數據;
處理過程:hadoop 是分為 split、map、shuffler 、reduce 等階段、storm 是由用戶定義流程,流程中可以包含多個步驟,每個步驟可以是數據源(spout)或處理邏輯(bolt)
是否結束:hadoop 最后是要結束的;storm 是沒有結束的,數據處理完是要等待新數據的進入的。
處理速度:hadoop 處理堆積的數據,速度慢,storm 只是處理新增的數據,時效性較高;
2、Storm 架構:
Nimbus:管事,但是可以不存在,如果 Nimbus 掛掉,之前提價的 job 可以繼續進行處理,后續不能繼續提交,因此 Nimbus 的主要作用是提交任務和通過 zk 與 Supervisor 進行溝通;相當于 Leader
Supervisor:
Worker
編程模型
DAG:有向無環圖
Spout:源頭
Bolt:bolt 處理完數據會使用消息框架將信息返回給上一個 Bolt 或 Spout;
數據傳輸:storm 底層傳輸數據使用 zmq 或者 netty
zmq
zmq 是開源的消息傳遞框架;(0.9 版本以上已經不用了)
Netty
netty 是 NIO 的網絡框架,效率比較高。之所以有 netty 事 storm 在 apache 之后,zmq 遵循 linux 的協議,netty 遵循的協議比較寬松。
高可用:
異常處理,就是異常崩潰,也不影響,例如 supervisor 掛了,nimbus 會重新調度
消息可靠性機制保證,ack 機制
可維護:
storm UI
3、Storm 處理數據的兩種模式:
實時請求應答模式(同步)
Client —-》DRPC Server —-》Spout—》Bolt—–》Return—》(返回給前面的 drpc server 然后再返回給 Client)
對應 DRPC Server 有不同的 Spout –》DRPC Spout ,Topology(拓撲結構)、ReturnResult
流式處理(異步)
Client—》MQ— Sport—— Bolt1—– bolt2——— Storage(redis、hbase、Mysql、mq 等)
—-
Storm 的 wordCount
1、隨機生成數據
2、切割單詞
3、hash 不同單詞到不同的任務上去
到此,關于“storm 處理數據的兩種模式是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!