国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Twitter利用Storm系統處理實時大數據

運維 系統運維
Storm 是一個開源的、大數據處理系統,與其他系統不同,它旨在用于分布式實時處理且與語言無關。了解 Twitter Storm、它的架構,以及批處理和流式處理解決方案的發展形勢。

Hadoop(大數據分析領域無可爭辯的王者)專注于批處理。這種模型對許多情形(比如為網頁建立索引)已經足夠,但還存在其他一些使用模型,它們需要來自高度動態的來源的實時信息。為了解決這個問題,就得借助 Nathan Marz 推出的 Storm(現在在 Twitter 中稱為 BackType)。Storm 不處理靜態數據,但它處理預計會連續的流數據。考慮到 Twitter 用戶每天生成 1.4 億條推文 (tweet),那么就很容易看到此技術的巨大用途。

但 Storm 不只是一個傳統的大數據分析系統:它是復雜事件處理 (CEP) 系統的一個示例。CEP 系統通常分類為計算和面向檢測,其中每個系統都可通過用戶定義的算法在 Storm 中實現。舉例而言,CEP 可用于識別事件洪流中有意義的事件,然后實時地處理這些事件。

Nathan Marz 提供了在 Twitter 中使用 Storm 的大量示例。一個最有趣的示例是生成趨勢信息。Twitter 從海量的推文中提取所浮現的趨勢,并在本地和***別維護它們。這意味著當一個案例開始浮現時,Twitter 的趨勢主題算法就會實時識別該主題。這種實時算法在 Storm 中實現為 Twitter 數據的一種連續分析。

Storm 與傳統的大數據

Storm 與其他大數據解決方案的不同之處在于它的處理方式。Hadoop 在本質上是一個批處理系統。數據被引入 Hadoop 文件系統 (HDFS) 并分發到各個節點進行處理。當處理完成時,結果數據返回到 HDFS 供始發者使用。Storm 支持創建拓撲結構來轉換沒有終點的數據流。不同于 Hadoop 作業,這些轉換從不停止,它們會持續處理到達的數據。

  大數據實現

  Hadoop 的核心是使用 Java? 語言編寫的,但支持使用各種語言編寫的數據分析應用程序。***的應用程序的實現采用了更加深奧的路線,以充分利用現代語言和它們的特性。例如,位于伯克利的加利福尼亞大學 (UC) 的 Spark 是使用 Scala 語言實現的,而 Twitter Storm 是使用 Clojure(發音同 closure)語言實現的。

  Clojure 是 Lisp 語言的一種現代方言。類似于 Lisp,Clojure 支持一種功能性編程風格,但 Clojure 還引入了一些特性來簡化多線程編程(一種對創建 Storm 很有用的特性)。Clojure 是一種基于虛擬機 (VM) 的語言,在 Java 虛擬機上運行。但是,盡管 Storm 是使用 Clojure 語言開發的,您仍然可以在 Storm 中使用幾乎任何語言編寫應用程序。所需的只是一個連接到 Storm 的架構的適配器。已存在針對 Scala、JRuby、Perl 和 PHP 的適配器,但是還有支持流式傳輸到 Storm 拓撲結構中的結構化查詢語言適配器。

  Storm 的關鍵屬性

  Storm 實現的一些特征決定了它的性能和可靠性的。Storm 使用 ZeroMQ 傳送消息,這就消除了中間的排隊過程,使得消息能夠直接在任務自身之間流動。在消息的背后,是一種用于序列化和反序列化 Storm 的原語類型的自動化且高效的機制。

  Storm 的一個最有趣的地方是它注重容錯和管理。Storm 實現了有保障的消息處理,所以每個元組都會通過該拓撲結構進行全面處理;如果發現一個元組還未處理,它會自動從噴嘴處重放。Storm 還實現了任務級的故障檢測,在一個任務發生故障時,消息會自動重新分配以快速重新開始處理。Storm 包含比 Hadoop 更智能的處理管理,流程會由監管員來進行管理,以確保資源得到充分使用。

  Storm 模型

  Storm 實現了一種數據流模型,其中數據持續地流經一個轉換實體網絡(參見 圖 1)。一個數據流的抽象稱為一個流,這是一個無限的元組序列。元組就像一種使用一些附加的序列化代碼來表示標準數據類型(比如整數、浮點和字節數組)或用戶定義類型的結構。每個流由一個惟一 ID 定義,這個 ID 可用于構建數據源和接收器 (sink) 的拓撲結構。流起源于噴嘴,噴嘴將數據從外部來源流入 Storm 拓撲結構中。

  圖 1. 一個普通的 Storm 拓撲結構的概念性架構

  接收器(或提供轉換的實體)稱為螺栓。螺栓實現了一個流上的單一轉換和一個 Storm 拓撲結構中的所有處理。螺栓既可實現 MapReduce 之類的傳統功能,也可實現更復雜的操作(單步功能),比如過濾、聚合或與數據庫等外部實體通信。典型的 Storm 拓撲結構會實現多個轉換,因此需要多個具有獨立元組流的螺栓。噴嘴和螺栓都實現為 Linux? 系統中的一個或多個任務。

  可使用 Storm 為詞頻輕松地實現 MapReduce 功能。如 圖 2 中所示,噴嘴生成文本數據流,螺栓實現 Map 功能(令牌化一個流的各個單詞)。來自 “map” 螺栓的流然后流入一個實現 Reduce 功能的螺栓中(以將單詞聚合到總數中)。

  圖 2. MapReduce 功能的簡單 Storm 拓撲結構

  請注意,螺栓可將數據傳輸到多個螺栓,也可接受來自多個來源的數據。Storm 擁有流分組 的概念,流分組實現了混排 (shuffling)(隨機但均等地將元組分發到螺栓)或字段分組(根據流的字段進行流分區)。還存在其他流分組,包括生成者使用自己的內部邏輯路由元組的能力。

  但是,Storm 架構中一個最有趣的特性是有保障的消息處理。Storm 可保證一個噴嘴發射出的每個元組都會處理;如果它在超時時間內沒有處理,Storm 會從該噴嘴重放該元組。此功能需要一些聰明的技巧來在拓撲結構中跟蹤元素,也是 Storm 的重要的附加價值之一。

  除了支持可靠的消息傳送外,Storm 還使用 ZeroMQ ***化消息傳送性能(刪除中間排隊,實現消息在任務間的直接傳送)。ZeroMQ 合并了擁塞檢測并調整了它的通信,以優化可用的帶寬。

Storm 示例演示

  現在讓我們通過實現一個簡單的 MapReduce 拓撲結構的代碼(參見 清單 1),看一下 Storm 示例。這個示例使用了來自 Nathan 的 Storm 入門工具包(可從 GitHub 獲取)(參見 參考資料 獲取鏈接)的巧妙設計的字數示例。此示例演示了 圖 2 中所示的拓撲結構,它實現了一個包含一個螺栓的 map 轉換和包含一個螺栓的 reduce 轉換。

  清單 1. 為圖 2 中的 Storm 構建一個拓撲結構

  1. TopologyBuilder builder = new TopologyBuilder();  
  2. builder.setSpout("spout", new RandomSentenceSpout(), 5);  
  3. builder.setBolt("map", new SplitSentence(), 4)  
  4. .shuffleGrouping("spout");  
  5. builder.setBolt("reduce", new WordCount(), 8)  
  6. .fieldsGrouping("map", new Fields("word"));  
  7. Config conf = new Config();  
  8. conf.setDebug(true);  
  9. LocalCluster cluster = new LocalCluster();  
  10. cluster.submitTopology("word-count", conf, builder.createTopology());  
  11. Thread.sleep(10000);  
  12. cluster.shutdown(); 

  清單 1(添加了行號以供引用)首先使用 TopologyBuilder 聲明一個新拓撲結構。接下來在第 3 行,定義了一個噴嘴(名為 spout),該噴嘴包含一個 RandomSentenceSpout。RandomSentenceSpout 類(也就是 nextTuple 方法)發出 5 個隨機句子的其中一個作為它的數據。setSpout 方法末尾的 5 參數是一個并行性提示(或要為此活動創建的任務數)。

  在第 5 和 6 行。我定義了***個螺栓(或算法轉換實體),在本例中為 map(或 split)螺栓。這個螺栓使用 SplitSentence 令牌化輸入流并將其作為輸出的各個單詞發出。請注意,第 6 行使用了 shuffleGrouping,它定義了對此螺栓(在本例中為 “spout”)的輸入訂閱,還將流分組定義為混排。這種混排分組意味著來自噴嘴的輸入將混排 或隨機分發給此螺栓中的任務(該螺栓已提示具有 4 任務并行性)。

  在第 8 和 9 行,我定義了***一個螺栓,這個螺栓實際上用于 reduce 元素,使用該元素的輸入作為 map 螺栓。WordCount 方法實現了必要的字數統計行為(將相似的單詞分組到一起,以維護總數),但不是混排的,所以它的輸出是一致的。如果有多個任務在實現 reduce 行為,那么您最終會得到分段的計數,而不是總數。

  第 11 和 12 行創建和定義了一個配置對象并啟用了 Debug 模式。Config 類包含大量配置可能性(參見 參考資料,獲取有關 Storm 類樹的更多信息的鏈接)。

  第 14 和 15 行創建了本地集群(在本例中,用于定義本地模式的用途)。我定義了我的本地集群、配置對象和拓撲結構的名稱(可通過 builder 類的 createTopology 元素獲取)。

  ***,在第 17 行,Storm 休眠一段時間,然后在第 19 行關閉集群。請記住,Storm 是一個持續運行的操作系統,所以任務可存在相當長時間,不斷處理它們訂閱的流上的新元組。

  您可在 Storm 入門工具包中了解這個非常簡單的實現的更多信息,包括噴嘴和螺栓的細節。

  使用 Storm

  Nathan Marz 編寫了一組簡單易懂的文檔,詳細介紹了如何安裝 Storm 來執行集群模式和本地模式的操作。本地模式無需一個龐大的節點集群,即可使用 Storm。如果需要在一個集群中使用 Storm 但缺乏節點,也可在 Amazon Elastic Compute Cloud (EC2) 中實現一個 Storm 集群。請參見 參考資料 獲取每個 Storm 模式(本地、集群和 Amazon EC2)的參考信息。

  其他開源的大數據解決方案

  自 Google 在 2004 年推出 MapReduce 范式以來,已誕生了多個使用原始 MapReduce 范式(或擁有該范式的質量)的解決方案。Google 對 MapReduce 的最初應用是建立萬維網的索引。盡管此應用程序仍然很流行,但這個簡單模型解決的問題也正在增多。

  表 1 提供了一個可用開源大數據解決方案的列表,包括傳統的批處理和流式處理應用程序。在將 Storm 引入開源之前將近一年的時間里,Yahoo! 的 S4 分布式流計算平臺已向 Apache 開源。S4 于 2010 年 10 月發布,它提供了一個高性能計算 (HPC) 平臺,向應用程序開發人員隱藏了并行處理的復雜性。S4 實現了一個可擴展的、分散化的集群架構,并納入了部分容錯功能。

  表 1. 開源大數據解決方案

 

  更多信息

  盡管 Hadoop 仍然是宣傳最多的大數據分析解決方案,但仍可能存在許多其他的解決方案,每種解決方案都具有不同的特征。我在過去的文章中探討了 Spark,它納入了數據集的內存中處理功能(能夠重新構建丟失的數據)。但 Hadoop 和 Spark 都專注于大數據集的批處理。Storm 提供了一個新的大數據分析模型,而且因為它最近被開源,所以也引起廣泛的關注。

  與 Hadoop 不同,Storm 是一個計算系統,它沒有包括任何存儲概念。這就使得 Storm 能夠用在各種各樣的上下文中,無論數據是從一個非傳統來源動態傳入,還是存儲在數據庫等存儲系統中(或者由一個控制器用于對其他一些設備(比如一個交易系統)進行實時操作)都是如此。

  請參見 參考資料 獲取有關 Storm 的更多信息的鏈接,了解如何讓一個集群正常運行,以及其他大數據分析解決方案(包括批處理和流式處理)。

參考資料 

  • 復雜事件處理 是 Storm 以及其他許多解決方案(比如 Yahoo! 的 S4)實現的模式。Storm 與 S4 之間的一個重要區別在于,Storm 在面對故障時提供了有保障的消息處理,而 S4 可能丟失消息。
     
  • Nathan Marz(Storm 背后的重要開發人員)為他的新產品編寫了多篇有趣且實用的介紹文章。對 Storm 的最早介紹來自 2011 年 5 月的 Storm 預覽:能夠實時處理的 Hadoop - BackType Technology,隨后是 8 月推出的 A Storm is coming: more details and plans for release
     
  • Storm 維基 提供了有關 Storm、它的理論基礎的大量優秀文檔,以及有關獲取 Storm 和設置新項目的各種教程。您還將找到一些有關 Storm 的許多方面的實用文檔,包括 Storm 在本地模式、集群模式和在 Amazon 上的使用。
     
  • Spark,一種快速數據分析替代方案(M. Tim Jones,developerWorks,2011 年 11 月)介紹了 UC Berkeley 的內存中彈性數據分析平臺。
     
  • 應用程序虛擬化的過去與未來(M. Tim Jones,developerWorks,2011 年 5 月)詳細介紹了虛擬化在語言抽象方面的使用。Storm 使用基于虛擬機的語言 Clojure 來實現,還使用 Java 技術和許多其他語言來構建它的內部(螺栓)應用程序。
     
  • GitHub 上提供了 Storm 的一個 thorough class tree exists,詳細介紹了 Storm 的類和接口。
     
  • Hadoop 已開始解決簡單批處理以外的模型。例如,通過調度,Hadoop 可調整其處理數據的方式,以便更多地關注交互性,而不是批量數據處理。在 Hadoop 中的調度(M. Tim Jones,developerWorks,2011 年 12 月)中了解有關 Hadoop 調度的更多信息。
責任編輯:黃丹 來源: developerWorks
相關推薦

2022-03-01 08:40:34

StormHadoop批處理

2014-04-08 14:21:09

Twitter StoStormStorm 集群

2012-05-18 10:49:36

SAP大數據HANA

2012-12-25 09:36:11

Storm大數據分析

2013-09-05 09:47:35

TwitterSummingbird開源

2016-09-04 15:14:09

攜程實時數據數據平臺

2014-04-15 11:24:53

Twitter Sto

2013-09-23 09:24:33

2023-11-13 11:01:25

數據技術

2015-11-09 09:58:31

大數據Lambda架構

2017-08-09 13:30:21

大數據Apache Kafk實時處理

2012-08-30 14:33:03

Spark

2016-11-08 12:49:27

大數據分布式系統Druid-IO

2014-02-14 15:49:03

storm安裝部署

2013-03-06 10:31:40

MapReduce大數據SPF

2009-06-17 13:50:15

實時搜索FacebookTwitter

2017-08-31 16:36:26

2013-05-14 10:01:57

Luchy Sort

2013-04-19 14:28:07

大數據

2014-12-15 09:32:17

StormSpark
點贊
收藏

51CTO技術棧公眾號

欧美日韩一二三区| 亚洲va久久久噜噜噜| 免费观看视频www| 国产精品永久| 午夜精品美女自拍福到在线| 免费大片黄在线观看视频网站| 久久蜜桃一区二区| 日本视频一区在线观看| 欧美电影在线观看完整版| 日韩欧美在线综合网| 欧美hdfree性xxxx| 亚洲色图19p| 成人漫画网站免费| 国产精品毛片大码女人| 亚洲黄色a v| 久久久影院官网| av免费看网址| 成人一区二区三区中文字幕| 亚洲国产一区在线| 日韩国产成人精品| 亚洲成人自拍视频| 久久成人18免费观看| 亚洲一区二区精品在线观看| 日本网站在线观看一区二区三区| 欧美日韩在线播放一区二区| 在线亚洲激情| 日韩欧美亚洲在线| 久久精品国内一区二区三区| 亚洲蜜桃在线| 国产91色综合久久免费分享| 久久国产午夜精品理论片最新版本| 奇米一区二区三区| 99re99热| 99re6这里只有精品视频在线观看| av影院在线播放| 波多野结衣亚洲一区| 色中色综合成人| 国产一区在线观看视频| 国产乱子伦农村叉叉叉| 国产精品美女视频| 午夜影院在线免费观看| 欧美一级久久久久久久大片| 涩涩在线视频| 午夜精品久久久久久久99热| 欧美肉体xxxx裸体137大胆| 999日本视频| 蜜桃av一区二区| 日韩视频在线免费看| 悠悠色在线精品| 日本www在线观看| 亚洲色图日韩av| 色老板在线视频一区二区| 91人人爽人人爽人人精88v| 丝袜美腿高跟呻吟高潮一区| 777精品久无码人妻蜜桃| 亚洲免费在线观看视频| 国产主播福利在线| 日韩麻豆第一页| 噜噜噜天天躁狠狠躁夜夜精品| 国产精品亚洲网站| 免费高清不卡av| 欧美18—20岁hd第一次| 欧美亚洲尤物久久| 日韩一区二区三免费高清在线观看| 国产精品国产福利国产秒拍 | 欧美日韩视频在线观看一区二区三区 | 综合一区中文字幕| 不卡视频免费播放| 中文字幕毛片| 欧美tickling挠脚心丨vk| 亚洲精品无播放器在线播放| 国产精品小说在线| 国产一区二区三区精品视频| 欧美自拍小视频| 欧美日本免费一区二区三区| 成人国产网站| 国产精品一区二区三区免费视频| 久久一二三四| 日本欧美亚洲| 亚洲欧洲av一区二区| 成人在线免费观看网站| 91精品国产毛片武则天| 欧美色视频日本版| 日本精品视频| 日韩区国产区| 精品国产91久久久| crdy在线观看欧美| 日韩av在线电影观看| 亚洲一区在线电影| 亚洲日日夜夜| 青青草久久网络| 一区二区三区欧美视频| 中文字幕一区久| 91久久国产自产拍夜夜嗨| 久久蜜臀精品av| 羞羞网站在线免费观看| 国产精品入口尤物| 91丨国产丨九色丨pron| 在线中文字幕第一页| 国产精品成人va在线观看| 成人教育av在线| 宅男网站在线免费观看| 国产在线不卡精品| 欧美国产禁国产网站cc| 97超碰在线免费| 91久久伊人青青碰碰婷婷| 国产婷婷精品av在线| 正在播放日韩精品| 欧美日韩电影一区二区三区| 无码av免费一区二区三区试看| 国产精选久久| 国产资源在线免费观看| 日韩欧美国产成人一区二区| 欧美国产免费| 亚洲成人天堂| 国产精品小说在线| 一区二区三区中文字幕精品精品| 亚洲一区二区免费在线观看| 国产精品视频网站在线观看| 亚洲精品在线免费观看视频| 国产精品亚洲综合久久| a中文在线播放| 国产高清不卡av| 色综合久久综合网| 中文字幕亚洲精品乱码| 在线观看视频污| 91久久精品国产91久久| 丁香五六月婷婷久久激情| 日韩视频在线观看| 小小水蜜桃在线观看| 国产欧美中文字幕| 无吗不卡中文字幕| 欧美在线三区| 午夜精品一区| 日本午夜精品电影| 日韩久久久精品| 麻豆精品久久精品色综合| gogogogo高清视频在线| 日韩欧美国产二区| 日韩精品中文字幕久久臀| 久久丁香综合五月国产三级网站| 99爱在线视频| 日韩美女爱爱视频| 久久福利视频网| 中文字幕一区二区三| 欧美日韩伦理| 在线播放麻豆| 天天操天天干天天玩| 在线观看免费高清视频97| 91免费在线视频观看| 思热99re视热频这里只精品| 在线成人动漫| 欧美日韩一区二| 亚洲欧美在线免费| 国产欧美日韩另类一区| 亚洲国产网址| 韩国中文免费在线视频| 裸模一区二区三区免费| 国产亚洲精品久久久优势| 国产拍揄自揄精品视频麻豆| 人妖一区二区三区| av在线电影网| 天天爱天天做天天操| 久久香蕉频线观| 亚洲成人av免费| 玖玖视频精品| 国产一区2区在线观看| 性视频在线播放| 久久99蜜桃综合影院免费观看| 亚洲欧美国产日韩天堂区| 久久久蜜桃精品| 日韩欧美午夜| 久久大胆人体| www.精品在线| 精品一区二区三区免费毛片| 亚洲色图15p| 一个色在线综合| 日韩高清一级片| 91夜夜蜜桃臀一区二区三区| 少妇性bbb搡bbb爽爽爽欧美| 日韩欧美一区二区视频在线播放| 播播国产欧美激情| 色呦呦国产精品| 成人aaaa免费全部观看| 日韩一区三区| 国产精品高清乱码在线观看| 国产偷激情在线| 亚洲欧洲另类精品久久综合| 久久综合色88| 欧美日韩在线一区二区| 波多野结衣精品在线| 91成人免费| japansex久久高清精品| 你懂得网站在线| 日本a在线天堂| 亚洲一区二区久久久久久| 亚洲欧美中文在线视频| 色综合一区二区| 久久久久久亚洲综合影院红桃 | 久久久亚洲影院|