天天看點

Storm核心的概念

1、初識Sortm的核心概念

Storm核心的概念

Topologies:拓撲,将整個流程串起來 \ Streams:流,資料流,水流 \ Spouts:生産資料/生産水

Bolts:處理資料/處理水 \ Tuple:資料/水 \ Stream groupings:流分組

Reliability:可靠性 \ Tasks:任務 \ Workers:勞工

2、Storm核心概念了解記憶概述

Storm核心的概念

3、Storm核心概念了解記憶之地鐵運作模型

Storm核心的概念

4、Storm核心概念了解記憶之Storm

Storm核心的概念

5、Storm核心小結

Storm核心的概念

6、Storm核心概念官方詳解

Topologies

實時應用程式的邏輯被打包到Storm拓撲中。Storm拓撲類似于MapReduce作業。一個主要差別是MapReduce作業最終完成,而拓撲将永遠運作(或者,直到您殺死它)。 topology是與stream groupings連接配接的spouts和bolts的圖形

Streams

流是Storm中的核心抽象。流是無限制的元組序列,它以分布式方式并行處理和建立。

流使用命名流元組中的字段的模式定義。預設情況下,tuples can contain integers, longs, shorts, bytes, strings, doubles, floats, booleans, and byte arrays.。您還可以定義自己的序列化器,以便可以在元組中本地使用自定義類型。

聲明時,每個流都有一個id。由于單流spouts和bolts非常常見,是以OutputFieldsDeclarer提供了友善的方法來聲明單流而無需指定id。在這種情況下,流的預設ID為“預設”。

spout

spout是拓撲中流的源。通常,噴口将從外部源中讀取元組,并将它們發送到拓撲中(例如,Kestrel隊列或Twitter API)。噴口可以是可靠或不可靠的。如果Storm無法對其進行處理,則可靠的噴嘴可以重播元組,而不可靠的噴嘴會在元組發出後立即将其忘記。

bolt

Topologies中的所有處理均通過bolt完成。bolt可以執行任何操作,包括過濾,函數,聚合,聯接,與資料庫對話等等。

Stream groupings

定義拓撲的一部分是為每個bolt指定應接收的流作為輸入。流分組定義了如何在bolt任務之間配置設定該流。

Reliability

Storm保證每個spout元組将被Topologies完全處理。它通過跟蹤每個spout元組觸發的元組樹并确定何時成功完成該元組樹來做到這一點。每個拓撲都有一個與之關聯的“消息逾時”。如果Storm無法檢測到在該逾時時間内已完成spout元組,則它将使元組失敗并稍後重播。

要利用Storm的可靠性功能,必須在建立元組樹中的新邊時告訴Storm,并在完成單個元組的處理後告訴Storm。這些是通過spout用來發出元組的OutputCollector對象完成的。

Tasks

每個spout或bolt在整個叢集中執行盡可能多的任務。每個任務對應一個執行線程,Stream groupings定義如何将元組從一組任務發送到另一組任務。您可以在TopologyBuilder的setSpout和setBolt方法中為每個spout或bolt設定并行度。

Workers

Topologies跨一個或多個工作程序執行。每個工作程序都是一個實體JVM,并執行Topologies所有任務的子集。例如,如果Topologies的組合并行度為300,并配置設定了50個工作程式,則每個工作程式将執行6個任務(作為工作程式中的線程)。Storm試圖将任務平均配置設定給所有勞工。

7、圖解Storm核心概念

Storm核心的概念