您好,登錄后才能下訂單哦!
這篇文章主要講解了“取消storm跟蹤機制的方法有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“取消storm跟蹤機制的方法有哪些”吧!
storm中涉及的名詞
0、zookeeper
1、nimbus
2、supervisor
3、worker
4、executor
5、task
6、topology
0、zookeeper:存儲狀態信息、調度信息、心跳,---》nimbus和supervisor之間的通信是由zookeeper來連接的,nimbus和supervisor是不能直接通信的,storm集群中的信息都存儲在zookeeper中。
1、nimbus:相當于集群中的master,storm是master/slave架構---》nimbus主要有兩個任務,1---》管理集群,supervisor向zookeeper寫信息,然后nimbus從zookeeper的節點上獲取到信息,這樣nimbus就知道集群中的信息了。
2---》調度topology,當一個topology通過nimbus提交到集群,nimbus會通過zookeeper中得到集群中有多少個supervisor和運行狀況,然后根據supervisor運行狀況啟動worker,nimbus也負責接收數據。
2、supervisor:storm的每一個節點上會有一個supervisor進程,supervisor負責啟動和停止worker進程。
3、worker:每一個supervisor進程一般會啟動多個worker進程,worker就是jvm,主要負責兩件事;1、啟動executor,2、負責worker和worker之間的通信。
4、executor:創建實際的Spout/Bolt對象,創建兩個線程,執行線程、傳輸線程(負責task與task中數據的通信)。
5、task:本人認為task就是executor中的執行線程。
6、topology:就是我們寫的storm程序
7、Spout(水龍頭):每一個topology都要有Spout節點,都必須從Spout節點開始,是生產Tuple的源頭,Spout有 KafkaSpout、DRPCSpout、RedisSpout等;Spout是集群的起始節點,因此nimbus和supervisor都掛了,集群還是可以運作的,Spout拿數據然后產生Tuple,再將數據發送給Bolt來處理數據,nextTuple()就是Spout的發送數據的函數,emit()是發送數據的方法;
8、Bolt:每一個topology可以有n個Bolt處理節點,用去處理數據的中間狀態或結果狀態,Bolt中的execute()方法是用來處理數據的
BaseBolt:
RichBolt:collector.emit(oldTuple,newTuple);
9、Tuple:Tuple的id對于Storm的可靠性是非常有用的,數據的最小單元
10、acker:Storm的跟蹤機制,Tuple在每一級的處理都會向acker匯報;如果規定時間內沒有返回到需要的信息,會有一定的處理機制,比如重發或丟棄;
取消跟蹤機制的三種方法
1、在配置文件中將Config.TOPOLOGY_ACKERS設置為0,整個bolt樹狀結構都沒有ack機制
2、不設置messageid,沒有messageid,ack就沒法做異或運算;
3、在發送Tuple時不發送oldTuple
跟蹤總結:ack機制實現首先需要配置,其次有messageid,最后要將原Tuple和新Tuple都發送出去;
10、Stream:每一個Stream都有一個id,如果沒有指定寫id就用的是默認的流,叫default,每個Spout/Bolt都有一個默認的Stream:default
注:并發度的衡量標準是由多少個executor(thread),而不是task
感謝各位的閱讀,以上就是“取消storm跟蹤機制的方法有哪些”的內容了,經過本文的學習后,相信大家對取消storm跟蹤機制的方法有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。