1. 程式人生 > >Storm使用到的相關技術總結

Storm使用到的相關技術總結

Storm作為一個開源的分散式實時流計算框架,其內部實現使用了一些常用的技術,這裡是對這些技術及其在Storm中作用的概括介紹。以此為基礎,後續再深入瞭解Storm的內部實現細節。

1. Zookeeper叢集

Zookeeper是一個針對大型分散式系統的可靠協調服務系統,其採用類似Unix檔案系統樹形層次結構的資料模型(如:/zoo/a,/zoo/b),節點內可儲存少量資料(<1M,當節點儲存大資料量時,實際應用中可能出現同步問題)。

Zookeepr的高可靠性服務是通過配置Zookeeper叢集實現的,官方建議Zookeeper叢集至少包含3個節點,每個節點上儲存一份資料,主節點掛掉後可以重新選取一個節點作為主節點。只要保證叢集內有一半以上的節點存活,叢集就可對外提供服務。

Zookeeper支援的操作型別有:

(1)建立樹節點znode;

(2)刪除樹節點znode;

(3)讀取樹節點znode的內容和其子節點的內容;

(4)當節點內容發生變化或子節點增刪時觸發訊息通知更新訊息;

(5)支援瞬時節點(EPHEMERAL),建立節點的程序退出後節點自動被刪除。

Storm中使用Zookeeper主要用於Storm叢集各節點的分散式協調工作,具體功能如下:

(1)儲存客戶端提供的topology任務資訊,nimbus負責將任務分配資訊寫入Zookeeper,supervisor從Zookeeper上讀取任務分配資訊;

(2)儲存supervisor和worker的心跳(包括它們的狀態),使得nimbus可以監控整個叢集的狀態, 從而重啟一些掛掉的worker;

(3)儲存整個叢集的所有狀態資訊和配置資訊。

關於Storm在Zookeeper的詳細目錄結構,可參考這裡

2. Thrift服務框架

Thrift是一個跨語言的可擴充套件的服務框架,它通過一箇中間語言(IDL,介面定義語言)來定義RPC的介面和資料型別,然後通過一個編譯器生成RPC客戶端和伺服器通訊的無縫跨程式語言。 Storm中Thrift的應用場景: (1)客戶端向nimbus提交topology任務; (2)supervisor從nimbus下載topology任務(程式碼和序列化檔案); (3)storm ui從nimbus獲取topology執行的統計資訊。

3. ZeroMQ訊息佇列

ZeroMQ是一個基於訊息的嵌入式網路程式設計庫,可作為併發框架連線多個應用程式,支援N-to-N的連線,多種工作模式(Request-reply,Publish-subscribe,Pipeline等),支援多種語言,ZeroMQ使得編寫高效能網路應用程式極為簡單。 Storm中ZeroMQ的應用場景:Spout與Bolt、Bolt與Bolt之間tuple訊息的傳輸。

4. Java序列化

Java序列化技術可以實現將Java物件儲存為二進位制檔案,而反序列化過程則可以在另一個Java程序中將此二進位制檔案恢復為Java物件,其缺點在於不能很好的解決版本變化。 Storm中Java序列化的應用場景: (1)客戶端提交topology任務後,Storm將topology任務序列化併發送給nimbus; (2)supervisor從Zookeeper取得任務資訊後,從nimbus下載序列化檔案和jar包,啟動worker程序並反序列化得到提交任務時的topology物件。

5. 總結

以上只是對Storm中所使用到的Zookeeper叢集、Thrift服務框架、ZeroMQ訊息佇列、Java序列化技術及其在Storm中的應用情況的簡單介紹,後續再進一步結合Storm的原始碼進行深入分析。以上內容,如果不對之處,歡迎大家指正。

相關推薦

Storm使用到的相關技術總結

Storm作為一個開源的分散式實時流計算框架,其內部實現使用了一些常用的技術,這裡是對這些技術及其在Storm中作用的概括介紹。以此為基礎,後續再深入瞭解Storm的內部實現細節。 1. Zookeeper叢集 Zookeeper是一個針對大型分散式系統的可靠協調服

【《Real-Time Rendering 3rd》 提煉總結】(十) 第十一章 · 非真實感渲染(NPR)相關技術總結

本文由出品,轉載請註明出處。 文章連結:http://blog.csdn.net/poem_qianmo/article/details/78574734與傳統的追求照片真實感的真實感渲染不同,非真實感渲染(Non-Photorealistic Renderin

TEC1304.值集和彈性域相關技術總結

第一節彈性域快速錄入 使用快速錄入別名來表示有效彈性域組合或有效段值模式,快速錄入別名是表示完整或部分鍵彈性域組合的詞或程式碼。 使用彈性域快速錄入,可以將完整或部分彈性域組合與快速錄入別名

Spring Cloud 微服務及相關技術總結

    微服務,分散式架構。    如果專案體量較大,比如大型電商專案,可以拆分出多個子模組比如處理商品、訂單、報表、活動等,各個模組負責各自的業務,解耦合,對開發、維護都有意義,就可以引入微服務架構了。微服務後,各服務之間的影響有效降低。試想一個大專案完全用一個工程去做,體

MySQL復制相關技術的簡單總結

問題 實際應用 線程 src 原則 丟失 手工 感覺 原理圖 MySQL有很多種復制,至少從概念上來看,傳統的主從復制,半同步復制,GTID復制,多線程復制,以及組復制(MGR)。咋一看起來很多,各種各樣的復制,其實從原理上看,各種復制的原理並無太大的異同,新的復制方

web前端課程技術總結Node.js 使用方法及相關方法分析

測試 一個 ejs 強制 req != server 跨域 ade Node.js 使用方法及相關方法分析 首先我們要了解什麽是node.js? 官方解釋是:node.js是一個基於Chrome v8引擎的javascript 運行環境。Node.js使用了一個事件驅動、非

MySQL複製相關技術的簡單總結

MySQL有很多種複製,至少從概念上來看,傳統的主從複製,半同步複製,GTID複製,多執行緒複製,以及組複製(MGR)。咋一看起來很多,各種各樣的複製,其實從原理上看,各種複製的原理並無太大的異同。每一種複製的出現都是有其原因的,是解決(或者說是彌補)前一種的複製方案的潛在的問題的。新的複製方式的出現,是

【Docker學習總結】3.Docker 容器相關技術簡介

上一篇總結學習了Docker的基本組成,大致瞭解了Docker是由Docker Client客戶端、Docker Daemon守護程序、Docker Image映象、Docker Container容器以及Docker Registry倉庫組成。本篇將繼續瞭解Docker針對

工作8年的大資料架構師的經驗總結:大資料平臺選型及相關技術應用 11 個難點解讀

Q1、傳統數倉轉向大資料平臺的必要性? 如題,或者什麼場景的的傳統數倉適合轉向大資料平臺。轉向大資料平臺後都解決了什麼樣的問題,暴露出什麼樣的問題? A: ■ rein07 某證券 系統架構師: 大資料平臺採用分散式架構,用於解決海量資料的儲存和分析問題,傳統數倉無法解決上

自動化-Selenium WebDriver相關技術總結

前端工具:FireBug&FirePath setuptools是Python Enterprise Application Kit (PEAK)的一個副專案,它是Python的distutilsde工具的增強工具,可以讓程式設計師更方便的建立和釋出P

劍指offer——鏈表相關問題總結

時間復雜度 k個結點 listnode 轉載 pbe push_back loop 結點 art 首先統一鏈表的數據結構為: struct ListNode { int val; struct ListNode *next; ListNode

斷點 相關技術與原理(2)

def pan 保存 ollydbg php class 工具 code http 繼續對OD的斷點技術做個筆記。 1、硬件斷點: Intel CPU中有8個調試寄存器(Debug Register)DR0 — DR7,當中DR0 — DR3用於設置硬件斷點地址,D

移動端h5開發相關內容總結css篇--自己總結

pan class 寬度 absolute html ive min-width 百分比 number 原文參考http://mp.weixin.qq.com/s/Nho2DHj-Y59j2F62vpN9jQ1.開發移動端,頭部必要的配置<meta name="vie

js事件相關知識點總結

模型 em1 detach 事件偵聽 包含 ring 分享 target 上傳 HTML頁面是怎樣實現交互的? 2017-05-22 js事件之事件流: 事件流原理圖:事件流是從window開始,最後回到window的一個過程,分為三個階段(1~5)捕獲過程、(5~6)

前端常用技術總結

.get 不能 function span 喜歡 錯誤 ble tips sta   背景:公司需要開發一些前端界面,基於bootstrap. 總結下自己在使用中常用, 又經常忘記的tips   1.以前寫ajax喜歡巴拉巴拉, 老代碼直接貼過來用 $.ajax({

互聯網技術總結

什麽 詳情 翻譯 ddos 互聯網技術 基礎設施 感悟 面試題 面試 最近在網上收集觀看的文章,總結了幾篇不錯的文章,大家可以點擊下面的鏈接觀看詳情: 遊戲行業DDoS 6年談:什麽樣的架構才可以對DDoS免疫?http://click.aliyun.com/m/25841

C#身份證識別相關技術

百度 ray gray map() summary int show .get pub 最近研究C#相關的OCR技術,圖像識別一般C和C++這種底層語言做的比較多,C#主要是依托一些封裝好的組件進行調用,這裏介紹一種身份證識別的方法。 環境搭建 下載地址:EmguCV官網

【幹貨】JS相關知識點總結

名稱 javascrip 過程 進行 匿名函數 wid logs def image 一、獲取元素方法 可以使用內置對象document上的getElementById方法來獲取頁面上設置了id屬性的元素,獲取到的是一個html對象,然後將它賦值給一個變量。如下: 上面的

單選,全選操作js相關技術

刷新 checkbox dal 重新 所有 split ise pan ppc jsp上編寫全選框,單選框 全選框 1 <td class="TableHeaderCell" style="width: 30px;"> 2 <input id="

大型分布式網站架構技術總結

高可用性 病毒 接口 物理 family 介紹 功能 三層應用 錯誤 本文是學習大型分布式網站架構的技術總結。對架構一個高性能,高可用,可伸縮,可擴展的分布式網站進行了概要性描述,並給出一個架構參考。一部分為讀書筆記,一部分是個人經驗總結。對大型分布式網站架構有很好的參考價