jstorm系列-1:入門

来源:http://www.cnblogs.com/qwj-sysu/archive/2016/01/28/5166859.html
-Advertisement-
Play Games

一、 Storm整體介紹 Storm 是一個類似Hadoop MapReduce的系統, 用戶按照指定的介面實現一個任務,然後將這個任務遞交給JStorm系統,Jstorm將這個任務跑起來,並且按7 * 24小時運行起來,一旦中間一個Worker 發生意外故障, 調度器立即分配一個新的Worker替


一、             Storm整體介紹

Storm 是一個類似Hadoop MapReduce的系統, 用戶按照指定的介面實現一個任務,然後將這個任務遞交給JStorm系統,Jstorm將這個任務跑起來,並且按7 * 24小時運行起來,一旦中間一個Worker 發生意外故障, 調度器立即分配一個新的Worker替換這個失效的Worker。

因此,從應用的角度,JStorm 應用是一種遵守某種編程規範的分散式應用。從系統角度, JStorm一套類似MapReduce的調度系統。 從數據的角度, 是一套基於流水線的消息處理機制。

實時計算現在是大數據領域中最火爆的一個方向,因為人們對數據的要求越來越高,實時性要求也越來越快,傳統的Hadoop MapReduce,逐漸滿足不了需求,因此在這個領域需求不斷。

1.1.  Storm組件和Hadoop組件對比

 

Storm

Hadoop

角色

Nimbus

JobTracker

 

Supervisor

TaskTracker

 

Worker

Child

應用名稱

Topology

Job

編程介面

Spout/Bolt

Mapper/Reducer

 

1.2. 優點

在Storm和JStorm出現以前,市面上出現很多實時計算引擎,但自Storm和JStorm出現後,基本上可以說一統江湖: 究其優點:

  • 開發非常迅速:介面簡單,容易上手,只要遵守Topology、Spout和Bolt的編程規範即可開發出一個擴展性極好的應用,底層RPC、Worker之間冗餘,數據分流之類的動作完全不用考慮
  • 擴展性極好:當一級處理單元速度,直接配置一下併發數,即可線性擴展性能
  • 健壯強:當Worker失效或機器出現故障時, 自動分配新的Worker替換失效Worker
  • 數據準確性:可以採用Ack機制,保證數據不丟失。 如果對精度有更多一步要求,採用事務機制,保證數據準確。

二、             安裝

參考文檔:

https://github.com/alibaba/jstorm/wiki/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85

 

三、             storm詳細講解

3.1. storm的整體架構

 

 

 

 

 

 

3.2.        基本概念簡介

圖中     這種顏色標識的是storm中的基本組件,包括:

Topology,bolt,spout,worker,task,slot,stream,tuple

3.2.1.              Topology

Storm的核心是topology,程式以topology作為一個整體提交到集群上

 

3.2.2.            Spout

數據流入口:spout程式負責從數據源讀入數據,然後發射出去,形成一個stream流,可以被多個bolt接受,形成多個流

3.2.3.            Bout

數據的消費者,從stream流中讀取數據,處理數據

可以從不同的流中讀取數據

3.2.4.            Stream

Spout發射的數據形成數據流,

3.2.5.            Worker

可以理解為一個topology承包給多少個包工頭(worker)

3.2.6.            Task

可以理解為工人,一個worker下麵有多個task,每個task運行一個bolt或spout的實例

3.3.        Bolt,spout和worker,task的關係

 

  

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、//觸摸空白處隱藏鍵盤 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [_feedBackTextView resignFirstResponder]; [_telTextField resignFirstRe
  • srand(seed)用來將隨機序列的起始點設為seed srand((int)time(0))表示以當前時間對應的int值為隨機序列起點,這樣每次運行程式,由於起點不同才可以得到不同的隨機數 time函數給出從1970年1月1日00:00:00至今的秒數,它必須帶一個參數,用來存儲這個秒數,tim
  • 第一篇,寫的比較詳細,新手可以看得懂: http://www.360doc.com/content/16/0128/08/30422106_531162539.shtml
  • 相比看一下枯燥乏味的對於block的講解,為什麼不從大神的代碼中領路它的使用方法呢,瞭解一下大神是如何使用block的呢,見識它的強大。https://github.com/zwaldowski/BlocksKit該項目對iOS的一些常用類進行了擴展,你可以學習到block的精髓。
  • 本文介紹一些流行的iOS的開源項目庫 1.AFNetworking 更新頻率高的輕量級的第三方網路庫,基於NSURL和NSOperation,支持iOS和OSX。https://github.com/AFNetworking/AFNetworking 2.GPUImage 圖像處理庫,基於OpenG
  • 一、簡介 Redis的replication機制允許slave從master那裡通過網路傳輸拷貝到完整的數據備份。具有以下特點: 非同步複製 可以配置一主多從 可以配置從伺服器可以級聯從伺服器,既 M->S->S M replication時是非阻塞的(在replication期間,M依然能夠處理客戶
  • 分片(partitioning)就是將你的數據拆分到多個 Redis 實例的過程,這樣每個實例將只包含所有鍵的子集。本文第一部分將向你介紹分片的概念,第二部分將向你展示 Redis 分片的可選方案。 分片能做什麼 Redis 的分片承擔著兩個主要目標: 允許使用很多電腦的記憶體總和來支持更大的資料庫。
  • 概述 本篇文章主要介紹Mycat以月進行分片的方法,包括配置方法、註意事項等。 mycat版本:1.4 數據節點:dn1,dn2,dn3 架構:主從 配置 創建測試表 CREATE TABLE `tdate` ( `id` int(11) NOT NULL, `createdate` datetim
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...