1. 程式人生 > >【流式計算】Twitter Storm原始碼分析之Nimbus/Supervisor本地目錄結構

【流式計算】Twitter Storm原始碼分析之Nimbus/Supervisor本地目錄結構

 
我們知道,storm叢集裡面工作機器分為兩種一種是nimbus, 一種是supervisor, 他們通過zookeeper來進行互動,nimbus通過zookeeper來發布一些指令,supervisor去讀zookeeper來執行這些指令,具體nimbus和supervisor在zookeeper上交換了哪些資訊可以看一下這篇文章: Twitter Storm原始碼分析之ZooKeeper中的目錄結構。知道了他們在zookeeper存的資訊之後,大家一定想知道nimbus和zookeeper在自己本機存了什麼資訊呢?這篇文章給你介紹。程式碼主要包括config.clj, nimbus.clj

, supervisor.clj, worker.clj

注意:下面目錄結構裡面, nimbus機器上面只有/nimbus目錄,supervisor機器上面只有/supervisor目錄和/workers目錄。

幫助
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 /{storm-local-dir} | |-/nimbus |   | |   |-/inbox                     -- 從nimbus客戶端上傳的jar包 |   |  |                            會在這個目錄裡面 |   |  | |   |  |-/stormjar-{uuid}.jar    -- 上傳的jar包其中{uuid}表示 |   |                               生成的一個uuid |   | |   |-/stormdist |      | |      |-/{topology-id} |         |
|         |-/stormjar.jar        -- 包含這個topology所有程式碼 |         |                         的jar包(從nimbus/inbox裡 |         |                         面挪過來的) |         | |         |-/stormcode.ser       -- 這個topology物件的序列化 |         | |         |-/stormconf.ser       -- 執行這個topology的配置 | |-/supervisor |   | |   |-/stormdist |   |   | |   |   |-/{topology-id} |   |      | |   |      |-/resources          -- 這裡儲存的是topology的 |   |      |                        jar包裡面的resources目錄 |   |      |                        下面的所有檔案 |   |      | |   |      |-/stormjar.jar       -- 從nimbus機器上下載來的 |   |      |                        topology的jar包 |   |      | |   |      |-/stormcode.ser      -- 從nimbus機器上下載來的 |   |      |                        這個topology物件的序列 |   |      |                        化形式 |   |      | |   |      |-/stormconf.ser      -- 從nimbus機器上下載來的 |   |                               執行這個topology的配置 |   | |   |-/localstate                -- supervisor的localstate |   | |   |-/tmp                       -- 臨時目錄,從Nimbus上下 |      |                            載的檔案會先存在這個目 |      |                            錄裡面,然後做一些簡單 |      |                            處理再copy到 |      |                            stormdist/{topology-id} |      |                            裡面去 |      |-/{uuid} |         | |         |-/stormjar.jar        -- 從Nimbus上面download下 |                                   來的工作jar包 | |-/workers | |-/{worker-id} | |-/pids                  -- 一個worker可能會起多個子 |   |                       程序所以可能會有多個pid |   | |   |-/{pid}             -- 執行這個worker的JVM的pid | |-/heartbeats            -- 這個supervisor機器上的 |                        worker的心跳資訊 | |-/{worker-id}        -- 這裡面存的是一個worker 的心跳:主要包括心跳時 間和worker的id

相關推薦

計算Twitter Storm原始碼分析Nimbus/Supervisor本地目錄結構

  我們知道,storm叢集裡面工作機器分為兩種一種是nimbus, 一種是supervisor, 他們通過zookeeper來進行互動,nimbus通過zookeeper來發布一些指令,supervisor去讀zookeeper來執行這些指令,具體nimbus和supe

計算Twitter Storm原始碼分析ZooKeeper中的目錄結構

作者: xumingming | 可以轉載, 但必須以超連結形式標明文章原始出處和作者資訊及版權宣告   我們知道Twitter Storm的所有的狀態資訊都是儲存在Zookeeper裡面,nimbus通過在zookeeper上面寫狀態資訊來分配任務,supervisor

Twitter Storm原始碼分析Topology的執行過程

如何提交一個topology? 要提交一個topology給storm的話, 我們在命令列裡面是這麼做的: 幫助 1 storm jar allmycode.jar org.me.MyTopology a

輸出文件 Android MountService 原始碼分析

Android 儲存裝置管理框架 在android之VOLD程序啟動原始碼分析一文中介紹了儲存裝置的管控中心Vold程序,Vold屬於native後臺程序,通過netlink方式接收kernel的uevent訊息,並通過socket方式將uevent訊息傳送給MountService,同時實時接

kubernetes/k8s概念CNI macvlan原始碼分析

macvlan原理      在linux命令列執行 lsmod | grep macvlan 檢視當前核心是否載入了該driver;如果沒有檢視到,可以通過 modprobe macvlan 來載入  &n

JUCJDK1.8原始碼分析CountDownLatch

轉自 https://www.cnblogs.com/leesf456/p/5406191.html 一、前言 分析完了CyclicBarrier後,下面分析CountDownLatch,CountDownLatch用於同步一個或多個任務,強制他們等待由其他任務執行的一組操作完成。C

ArrayList集合(JDK1.8) 集合框架JDK1.8原始碼分析ArrayList(六)

簡述   List是繼承於Collection介面,除了Collection通用的方法以外,擴充套件了部分只屬於List的方法。   常用子類  ?ArrayList介紹 1.資料結構   其底層的資料結構是陣列,陣列元素型別為Object型別,即可以存放所

JUCJDK1.8原始碼分析CountDownLatc

一、前言 分析完了CyclicBarrier後,下面分析CountDownLatch,CountDownLatch用於同步一個或多個任務,強制他們等待由其他任務執行的一組操作完成。CountDownLatch典型的用法是將一個程式分為n個互相獨立的可解決任務,

storm原始碼分析acker工作流程

我們知道storm一個很重要的特性是它能夠保證你發出的每條訊息都會被完整處理,完整處理的意思是指: 一個tuple以及這個tuple所導致的所有的tuple都會被成功處理。而一個tuple會被認為處理失敗瞭如果這個訊息在timeout所指定的時間內沒有成功處理。 也就是說對

雲客Drupal8原始碼分析內容實體資料庫表結構及表對映table mapping

“欄位”概念 在drupal中提到“欄位”這個概念時,請不要理解為資料庫中表的一個列,這不是一個概念,它是指一個欄位物件,充當著實體物件的屬性,也是一個列表型別的型別化資料物件,當本系列提到“欄位field”一般均是指欄位物件或欄位定義物件,而資料庫表中的欄位列,則將其稱為

線上直播Flink—新一代計算框架

分享講師:黃躍峰                                        

storm 計算框架

大數據 storm 流式計算 一:storm 簡介 二:storm 的原理與架構 三:storm 的 安裝配置 四:storm 的啟動腳本 一: storm 的簡介: 1.1 storm 是什麽: 1. Storm是Twitter開源的分布式實時大數據處理框架,被業界稱為實時版Hadoo

Storm簡介——實時計算介紹

大數據 bsp 要求 角度 size 計算 spa 流量 使用場景 概念 實時流式計算: 大數據環境下,流式數據將作為一種新型的數據類型,這種數據具有連續性、無限性和瞬時性。是實時數據處理所面向的數據類型,對這種流式數據的實時計算就是實時流式計算。 特

hadoop(十三)storm計算(實時處理)

storm介紹 說明+安裝文件             Storm是一個開源的分散式實時計算系統,可以簡單、可靠的處理大量的資料流。被稱作“實時的hadoop”。Storm有很多使用

大資料學習:storm計算

       Storm是一個分散式的、高容錯的實時計算系統。Storm適用的場景:   1、Storm可以用來用來處理源源不斷的訊息,並將處理之後的結果儲存到持久化介質中。   2、由於Storm的處理元件都是分散式的,而且處理延遲都極低,所以可以Storm可以做為

計算--storm1(storm概念初識)

1.Storm是什麼?      Storm用來實時處理資料,特點:低延遲、高可用、分散式、可擴充套件、資料不丟失。提供簡單容易理解的介面,便於開發。 2.Storm與Hadoop的區別? Storm用於實時計算,Hadoop用於離線計算。 Storm處理的資料儲存在

計算--storm3(Storm單詞技術案例)

    功能說明:設計一個topology,來實現對文件裡面的單詞出現的頻率進行統計。本篇部落格是在storm概念講解和storm叢集搭建的基礎上來的   1.建立一個maven專案:         新增以來如下:  <dependency>

計算--整合kafka+flume+storm

1.資料流向      日誌系統=>flume=>kafka=>storm  2.安裝flume       1.我們在storm01上安裝flume1.6.0,上傳安裝包        2.解壓到  /export/servers/flume,

分散式計算框架 Storm

場景 伴隨著資訊科技日新月異的發展,資訊呈現出爆發式的膨脹,人們獲取資訊的途徑也更加多樣、更加便捷,同時對於資訊的時效性要求也越來越高。舉個搜尋場景中的例子,當一個賣家釋出了一條寶貝資訊時,他希望的當然是這個寶貝馬上就可以被賣家搜尋出來、點選、購買啦,相反,如果這個寶貝要

計算storm應用場景簡介

(1) storm是一個程序常駐記憶體的、分散式的,對資料實時流式處理框架,不同於MR的批處理和spark streaming的微批處理,storm實現了對資料處理的毫秒級延遲。它的資料來源被稱為SPOUT,資料處理流程被稱為BOLT (2)storm一般應用於對資料的處