溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

大數(shù)據(jù)學(xué)習(xí)之(Storm)-原理詳解!

發(fā)布時間:2020-06-10 02:14:40 來源:網(wǎng)絡(luò) 閱讀:1336 作者:qq5af153121eb2c 欄目:大數(shù)據(jù)

角色

Client

client的主要作用是提交topology到集群

Worker

Worker是運行在Supervisor節(jié)點上的一個獨立的JVM進程,主要作用是運行topology,一個topology可以包含多個worker,但一個worker只能屬于一個topology

Exceutor

在Worker中運行的線程,一個Executor可以對應(yīng)一個或多個Task,每個Task(Spout或Bolt)必須對應(yīng)一個Executor。

Task

一個獨立的處理邏輯的實例,每個Spout或Bolt都可以對應(yīng)多個Task在集群中運行,每個線程對應(yīng)到一個Executor線程上。
streaminggroup定義了如何從一堆Task發(fā)送數(shù)據(jù)到另外一堆Task上。

Storm集群的啟動、任務(wù)提交與執(zhí)行流程

啟動

客戶運行storm nimbus或storm supervisor時,在storm腳本內(nèi)部實際對應(yīng)了兩個python函數(shù),這兩個函數(shù)最終會生成一條java命令,用于啟動一個storm的java進程:

java -server xxxx.xxxx.nimbus/supervisor args
1
任務(wù)提交

運行storm java xxxx.MainClass name,此時會執(zhí)行Driver驅(qū)動類的main函數(shù)
在驅(qū)動類中,會調(diào)用topologyBuilder.createTopology()方法,該方法會生成spout和bolt的序列化對象
客戶端把topology對應(yīng)的jar上傳的到nimbus的storm-local/nimbus/inbox目錄下
首先,nimbus會將storm.jar復(fù)制到/home/hadoop/storm-local/nimbus/stormdist/wordcount01-2-1525621662目錄下,根據(jù)第二步生成的序列化對象生成task的序列化文件和相關(guān)配置的序列化文件(wordcount01-2-1525621662為storm生成的一個唯一的topology名稱),此時,nimbus就可以進行任務(wù)分配了
-rw-rw-r--. 1 hadoop hadoop 3615 5月 6 23:47 stormcode.ser
-rw-rw-r--. 1 hadoop hadoop 733 5月 6 23:47 stormconf.ser
-rw-rw-r--. 1 hadoop hadoop 3248667 5月 6 23:47 stormjar.jar
1
2
3
接下來進行任務(wù)分配,分配完成后會產(chǎn)生一個assegiment對象,該對象會被序列化后保存到zookeeper的/storm/assignments/wordcount01-2-1525621662目錄下

supervisor通過zookeeper的watch機制感知/storm/assignments目錄變化,拉取數(shù)據(jù)自己的topology(nimbus進行分配時,會指定task所屬的supervisor)

supversior根據(jù)拉取到的信息在指定端口上啟動worker,實際上就是執(zhí)行一條java腳本

java -server xxxxx.xxxx.worker
1
worker啟動后,根據(jù)分配的task信息開始執(zhí)行。

大數(shù)據(jù)學(xué)習(xí)交流群 766988146 不管你是小白還是大牛,筆者我都挺歡迎,今天的源碼已經(jīng)上傳到群文件,不定期分享干貨,
包括我自己整理的一份最新的適合2018年學(xué)習(xí)的大數(shù)據(jù)開發(fā)和零基礎(chǔ)入門教程,歡迎初學(xué)和進階中的小伙伴

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI