1. 程式人生 > >Storm基本知識總結

Storm基本知識總結

Storm是一個開源的分散式實時計算系統,可以簡單、可靠的處理大量的資料流。Storm的部署和運維都很便捷,而且更為重要的是可以使用任意程式語言來開發應用

storm:實時計算系統

            低延遲,高效能,分散式,可擴充套件,容錯

特點:簡單程式設計模型,熱部署,各種程式語言,可擴充套件,容錯,可靠訊息處理,快速,本地模式

storm基本概念:

        Nimbus:負責資源分配和任務排程

        Supervisor:負責接受nimbus分配的任務,啟動和停止屬於自己管理的worker程序

        Worker:執行具體處理元件邏輯的程序

        Task:worker中每一個spout/bolt的執行緒稱為一個task,在storm0.8後,task不在與物理執行緒對應,同一個spout/bolt的task可能會共享一個物理執行緒,該執行緒稱為executor

        Topology:storm中執行的一個實時的應用程式,因為各個元件間的訊息流動形成邏輯上的一個拓撲結構

        Spout:在一個topology中產生源資料的元件。通常情況下spout會從外部資料來源中讀取資料,然後轉換為topology的內部的源資料。spout是一個主動的角色,其介面中有一個nextTuple()的函式。storm框架會不停的呼叫此函式,使用者只要在其中生成源資料即可。

        Bolt:在一個topology中接受資料然後執行處理的元件。Bolt可以執行過濾、函式操作、合併、寫資料庫等任何操作。Bolt是一個被動的角色,其介面中有個execute(Tupleinput)函式,在接受到訊息後會呼叫此函式,使用者可以在其中執行自己想要的操作。

        Tuple:一次訊息傳遞的基本單元。本來應該是一個key-value的map,但是由於各個元件間的傳遞的tuple的欄位名稱已經事先定義好,所以Tuple中只要按序填入各個value就行了,是一個valueList。

        Stream:源源不斷傳遞的Tuple就組成了stream.

Strom使用場景:

1.流聚合:把兩個或者多個數據流聚合成一個數據流-基於一些共同的tuple欄位。

2.批處理:為了效能或者一些別的原因,把一組tuple一起處理,而不是一個一個的單獨處理。

3.BasicBolt

a.讀一個輸入的tuple

b.根據一個輸入tuple發射一個或多個tuple

c.在execute的方法的最後ack那個輸入tuple遵循這類模式的bolt一般是函式或者是過濾器,這種模式太常見,storm為這類模式單獨封裝了一個介面:IbasicBolt

d.記憶體內快取+Fields grouping組合

e.據算topN

f.用TimeCacheMap來高效的儲存一個最近被更新物件的快取

g.分散式RPC

storm分組機制

1.隨機分組(Shuffle grouping)

2.欄位分組(Fields grouping)

3.全部分組(All grouping)

4.全域性分組(Global grouping)

5.無分組(None grouping)

6.直接分組(Direct grouping)

7.實現CustomStreamGrouping介面來定義自己的分組

相關推薦

Storm基本知識總結

Storm是一個開源的分散式實時計算系統,可以簡單、可靠的處理大量的資料流。Storm的部署和運維都很便捷,而且更為重要的是可以使用任意程式語言來開發應用。 storm:實時計算系統             低延遲,高效能,分散式,可擴充套件,容錯 特點:簡單程式設計模型,

圖像處理基本知識總結(二)

空間 彩色 最終 圖像處理 邊緣 不同的 byte 一個 分析法 筆試題知識點 1、存儲一副大小為1024×1024,256個灰度的圖像,需要(8M)byte。 256是2的8次方,即8位,8個bit,1個字節;等於1024*1024*8 (bit)=8M(bit)。 2、

rtmp協議基本知識總結

此文件是想到哪寫到哪:參考文件: https://www.cnblogs.com/shishuo365/p/5862613.html 一些控制協議訊息(訊息型別ID可以在下列文件中查詢) https://blog.csdn.net/lipengshiwo/article/details/532

【計算機網路】(一)OSI, TCP/IP模型 & 網路HTTP、TCP、UDP、Socket 基本知識總結

OSI 七層模型   我們一般使用的網路資料傳輸由下而上共有七層,分別為物理層、資料鏈路層、網路層、傳輸層、會話層、表示層、應用層,也被依次稱為 OSI 第一層、第二層、⋯⋯、 第七層。 如下圖: 各層功能簡介 1.物理層(Physical Layer)  

JAVA一些基本知識總結

自增、自減運算子是單目運算子,可以放在操作元之前,也可以放在操作元之後。操作元必須時一個整型或浮點型變數。自增、自減運算子的作用是使變數的值增1或減1。放在操作元前面的自增、自減運算子,會先將變數的值加1(減1),然後再使該變數參與表示式的運算。放在操作元后面的自增、自減運算子,會先使變數參與表示式

Java 基礎回顧:基本知識總結

本篇文章對 Java 中的語言相關的基礎知識進行了總結,其中部分內容參考了阿里的 Java 開發規範 1、術語 No 結論 1 JDK 是編寫Java程式的程式設計師使用

Discuz二次開發基本知識總結

一) Discuz!的檔案系統目錄 注:想搞DZ開發,就得弄懂DZ中每個檔案的功能。 a) Admin:後臺管理功能模組 b) Api:DZ系統與其它系統之間介面程式 c) Archiver:DZ中,用以搜尋引擎優化的無圖版 d) Attac

MOSFET管開關電路基本知識總結

開關電路原則 a.  BJT 三極體 Transistors 只要發射極 e  對電源短路 就是電子開關用法 N 管 發射極 E  對電源負極短路 .  ( 搭鐵 )  低邊開關 ;b-e  正向電流 飽和導通 P 管 發射極 E  對電源正極短路 .            高邊開關

音訊開發基本知識總結

一、音訊的基本概念1.取樣率:(也稱為取樣速度或者取樣頻率)定義了每秒從連續訊號中提取並組成離散訊號的取樣個數,單位用赫茲(Hz)來表示。取樣頻率的倒數是取樣週期(也稱為取樣時間),它表示取樣之間的時間間隔。常用的取樣率有:  * 8,000 Hz - 電話所用取樣率, 對於

Java基礎知識總結(一)--基本語法知識

一.識別符號 (1)定義:就是給類,介面,方法,變數等起名字的字元序列 (2)組成規則:英文大小寫字母,數字,_和$ (3)注意事項:不能以數字開頭,不能是java中的關鍵字,區分大小寫 (4)常見命名規則: a.包名:全部小寫。 b.類名/介面名:每個單詞首字母大寫 c

關於mybatis+maven基本知識掌握總結

首先這次學習mybatis,得先下載idea軟體。maven在idea上好操作點,破解方案自行百度。這裡暫不詳細介紹。 當然學習mybatis框架需要一定基礎,對於jdbc+mysql底層實現有一定認識,這裡就不在講解。 mybatis還是很簡單的,網上教程一大堆,很可能你看一堆都比我的寫得

Android面試題總結|基本知識梳理---持續更新

梳理背景 最近準備換工作了,這兩天面試了幾家真的很受打擊。就像一位大佬說的,不是技術要求高了,而是企業招聘更理性了。好好反思自己處理平時到處百度copy,paste,還有什麼提升呢。早已不是瞭解四大元件就能收到各種offer的年代了。 決定好好的梳理一下知識

Java程式碼基本知識(手敲總結

1、語句用分號;結尾的一行程式碼就是語句,java中語句必須以;結尾2、註釋 //單行註釋           /* */ 多行註釋3、空格   在java程式中任何數量的空格都是允許的4、識別符號識別符號是賦予變數、類或方法的名稱。首字母只能以字母、下劃線、$開頭,其後可以

Storm基本知識

         上篇文章本人簡單的介紹了Storm的起源,今天本人又繼續學習了Storm的基本的一些知識,基本瞭解了他的基本用法,還好,不算太難,如果大家瞭解了Hadoop的MapReduce模型的

DDD領域驅動設計基本理論知識總結

原文地址:http://www.cnblogs.com/netfocus/archive/2011/10/10/2204949.html 領域驅動設計之領域模型 加一個導航,關於如何設計聚合的詳細思考,見這篇文章。 2004年Eric Evans 發表Domain

總結關於CPU的一些基本知識

關於CPU和程式的執行 CPU是計算機的大腦。 程式的執行過程,實際上是程式涉及到的、未涉及到的一大堆的指令的執行過程。 當程式要執行的部分被裝載到記憶體後,CPU要從記憶體中取出指令,然後指令解碼(以便知道型別和運算元,簡單的理解為CPU要知道這是什麼指令),然後執行該指令。再然後取下一個指令、解碼、執行

h5調用底層接口知識總結

什麽 掃一掃 mas 基本 相關 blog 技術 ref 擴展 本文標簽: h5調用底層接口 h5 h5調用本地攝像頭 前端時間使用HTML5做了一個WEB端APP,其中用到了H5頁面調用手機攝像頭的功能,當時也是花了不少時間去研究。最終是采用了HTML5pl

前端必須會的基本知識題目

瀏覽器 chrome display hidden presto 1. 常用那幾種瀏覽器測試?有哪些內核(Layout Engine)?(Q1) 瀏覽器:IE,Chrome,FireFox,Safari,Opera。(Q2) 內核:Trident,Gecko,Presto,Webkit。2

前端基礎知識總結

pla 部分 一個 知識 法則 總結 情況 元素 保存 一、html中alt和title的區別 1.alt是圖片的屬性值,當圖片無法加載的時候,會用alt屬性的值來替換圖片。 2.而title是圖片的標題,當鼠標移動到圖片上時,會顯示圖片的名稱。 [email 

MySQL基本知識及練習(5)

ase part exist 四舍五入 tex sub pass center 不同的 1.求一個班級數學平均分。 (1). select sum(math) / count(math) as 數學平均分 from student; (2). select avg(