storm之一 簡介

一、Storm簡介linux

storm是一個分佈式、容錯的實時計算系統,起先被託管在GitHub上,遵循Eclipse  Public  License 1.0  。Storm是由BackType開發的實時處理系統,由Twitter開源redis

2013年,Storm進入Apache社區進行孵化;sql

2014年9月,晉級爲Apache頂級項目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只是處理新增的數據,時效性較高;分佈式

二、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

三、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

一、隨機生成數據

二、切割單詞

三、hash不一樣單詞到不一樣的任務上去

相關文章
相關標籤/搜索