• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      論Storm分布式實(shí)時(shí)計(jì)算工具

      2014-04-16 02:14:51沈超鄧彩鳳
      中國科技縱橫 2014年3期
      關(guān)鍵詞:原語字段隊(duì)列

      沈超 鄧彩鳳

      (1.大慶油田工程建設(shè)有限公司化建公司,黑龍江大慶 163159;2.中國石油大港油田分公司對(duì)外合作項(xiàng)目部,天津 300280)

      論Storm分布式實(shí)時(shí)計(jì)算工具

      沈超1鄧彩鳳2

      (1.大慶油田工程建設(shè)有限公司化建公司,黑龍江大慶 163159;2.中國石油大港油田分公司對(duì)外合作項(xiàng)目部,天津 300280)

      互聯(lián)網(wǎng)的應(yīng)用催生了一大批新的數(shù)據(jù)處理技術(shù),storm分布式實(shí)時(shí)處理工具以其強(qiáng)大的數(shù)據(jù)處理能力、可靠性高、擴(kuò)展性好等特點(diǎn),在近幾年得到越來越廣泛的關(guān)注和應(yīng)用。

      分布式 實(shí)時(shí)計(jì)算 流處理

      1 背景及特點(diǎn)

      互聯(lián)網(wǎng)的應(yīng)用正在越來越深入的改變?nèi)藗兊纳?,互?lián)網(wǎng)技術(shù)也在不斷發(fā)展,尤其是大數(shù)據(jù)處理技術(shù),過去的十年是大數(shù)據(jù)處理技術(shù)變革的十年,MapReduce,Hadoop以及一些相關(guān)的技術(shù)使得我們能處理的數(shù)據(jù)量比以前要大得多得多。但是這些數(shù)據(jù)處理技術(shù)都不是實(shí)時(shí)的系統(tǒng),或者說,它們?cè)O(shè)計(jì)的目的也不是為了實(shí)時(shí)計(jì)算。沒有什么辦法可以簡(jiǎn)單地把hadoop變成一個(gè)實(shí)時(shí)計(jì)算系統(tǒng)。實(shí)時(shí)數(shù)據(jù)處理系統(tǒng)和批量數(shù)據(jù)處理系統(tǒng)在需求上有著本質(zhì)的差別。

      然而大規(guī)模的實(shí)時(shí)數(shù)據(jù)處理已經(jīng)越來越成為一種業(yè)務(wù)需求了,而缺少一個(gè)“實(shí)時(shí)版本的hadoop”已經(jīng)成為數(shù)據(jù)處理整個(gè)生態(tài)系統(tǒng)的一個(gè)巨大缺失。而storm的出現(xiàn)填補(bǔ)了這個(gè)缺失。Storm出現(xiàn)之前,互聯(lián)網(wǎng)技術(shù)人員可能需要自己手動(dòng)維護(hù)一個(gè)由消息隊(duì)列和消息處理者所組成的實(shí)時(shí)處理網(wǎng)絡(luò),消息處理者從消息隊(duì)列取出一個(gè)消息進(jìn)行處理,更新數(shù)據(jù)庫,發(fā)送消息給其它隊(duì)列等等。不幸的是,這種方式有以下幾個(gè)缺陷:

      單調(diào)乏味:技術(shù)人員花費(fèi)了絕大部分開發(fā)時(shí)間去配置把消息發(fā)送到哪里,部署消息處理者,部署中間消息節(jié)點(diǎn)—設(shè)計(jì)者的大部分時(shí)間花在設(shè)計(jì),配置這個(gè)數(shù)據(jù)處理框架上,而真正關(guān)心的消息處理邏輯在代碼里面占的比例很少。

      脆弱:不夠健壯,設(shè)計(jì)者要自己寫代碼保證所有的消息處理者和消息隊(duì)列正常運(yùn)行。

      伸縮性差:當(dāng)一個(gè)消息處理者的消息量達(dá)到閥值,需要對(duì)這些數(shù)據(jù)進(jìn)行分流,配置這些新的處理者以讓他們處理分流的消息。

      Storm定義了一批實(shí)時(shí)計(jì)算的原語。如同hadoop大大簡(jiǎn)化了并行批量數(shù)據(jù)處理,storm的這些原語大大簡(jiǎn)化了并行實(shí)時(shí)數(shù)據(jù)處理。storm的一些關(guān)鍵特性如下:

      適用場(chǎng)景廣泛:storm可以用來處理消息和更新數(shù)據(jù)庫(消息流處理),對(duì)一個(gè)數(shù)據(jù)量進(jìn)行持續(xù)的查詢并返回客戶端(持續(xù)計(jì)算),對(duì)一個(gè)耗資源的查詢作實(shí)時(shí)并行化的處理(分布式方法調(diào)用),storm的這些基礎(chǔ)原語可以滿足大量的場(chǎng)景。

      可伸縮性高:Storm的可伸縮性可以讓storm每秒可以處理的消息量達(dá)到很高。Storm使用ZooKeeper來協(xié)調(diào)集群內(nèi)的各種配置使得Storm的集群可以很容易的擴(kuò)展很大。

      保證無數(shù)據(jù)丟失:實(shí)時(shí)系統(tǒng)必須保證所有的數(shù)據(jù)被成功的處理。那些會(huì)丟失數(shù)據(jù)的系統(tǒng)的適用場(chǎng)景非常窄,而storm保證每一條消息都會(huì)被處理,這一點(diǎn)和S4相比有巨大的反差。

      異常健壯:不像Hadoop—出了名的難管理,storm集群非常容易管理。容易管理是storm的設(shè)計(jì)目標(biāo)之一。

      語言無關(guān)性:健壯性和可伸縮性不應(yīng)該局限于一個(gè)平臺(tái)。Storm的topology和消息處理組件可以用任何語言來定義,這一點(diǎn)使得任何人都可以使用storm。

      2 storm的關(guān)鍵概念

      計(jì)算拓補(bǔ):Topologies

      一個(gè)實(shí)時(shí)計(jì)算應(yīng)用程序的邏輯在storm里面被封裝到topology對(duì)象里面,我把它叫做計(jì)算拓補(bǔ)。Storm里面的topology相當(dāng)于Hadoop里面的一個(gè)MapReduce Job,它們的關(guān)鍵區(qū)別是:一個(gè)MapReduce Job最終總是會(huì)結(jié)束的,然而一個(gè)storm的topoloy會(huì)一直運(yùn)行—除非你顯式的殺死它。一個(gè)Topology是Spouts和Bolts組成的圖狀結(jié)構(gòu),而鏈接Spouts和Bolts的則是Streamgroupings。

      消息流:Streams

      消息流是storm里面的最關(guān)鍵的抽象。一個(gè)消息流是一個(gè)沒有邊界的tuple序列,而這些tuples會(huì)被以一種分布式的方式并行地創(chuàng)建和處理。對(duì)消息流的定義主要是對(duì)消息流里面的tuple的定義,我們會(huì)給tuple里的每個(gè)字段一個(gè)名字。并且不同tuple的對(duì)應(yīng)字段的類型必須一樣。也就是說:兩個(gè)tuple的第一個(gè)字段的類型必須一樣,第二個(gè)字段的類型必須一樣,但是第一個(gè)字段和第二個(gè)字段可以有不同的類型。在默認(rèn)的情況下,tuple的字段類型可以是:integer,long,short,byte,string,double,float,boolean和bytearray。你還可以自定義類型—只要你實(shí)現(xiàn)對(duì)應(yīng)的序列化器。

      3 storm應(yīng)用及前景

      根據(jù)storm的特點(diǎn),大致有兩個(gè)應(yīng)用模式:(1)實(shí)時(shí)流處理;(2)drpc調(diào)用;前者就是通過消息隊(duì)列等方式將數(shù)據(jù)源源不斷的發(fā)送給storm集群來處理,而后者,類似于開啟一個(gè)服務(wù),客戶端方面可以遠(yuǎn)程的發(fā)送數(shù)據(jù)給storm并同步或異步的接收到處理結(jié)果。

      storm的應(yīng)用場(chǎng)景非常廣泛,具體如下:

      監(jiān)控系統(tǒng):監(jiān)控整個(gè)集群的狀態(tài),當(dāng)出現(xiàn)異常log的時(shí)候進(jìn)行分析,對(duì)異常進(jìn)行分類并實(shí)時(shí)發(fā)出報(bào)警,提示運(yùn)維人員來維護(hù)。并且可以進(jìn)一步考慮。這樣可以對(duì)整個(gè)系統(tǒng)的做一個(gè)很好的監(jiān)控和反應(yīng)。

      安全系統(tǒng):在信息安全領(lǐng)域中,做實(shí)時(shí)的流量分析,異常過濾、惡意攻擊檢測(cè)等。

      實(shí)時(shí)計(jì)算:根據(jù)之前數(shù)據(jù)分析人員分析計(jì)算的數(shù)學(xué)模型,如點(diǎn)擊量預(yù)估模型、用戶付費(fèi)預(yù)期計(jì)算模型、好友推薦算法,放到storm的拓?fù)渲?,通過topology來計(jì)算,可以幫助實(shí)時(shí)為用戶提供服務(wù)、及時(shí)發(fā)現(xiàn)問題、極大的提高工作效率,而不必受制于老的計(jì)算模式,如一天計(jì)算一次、一小時(shí)計(jì)算一次等。

      Storm0.7系列的版本已經(jīng)在各大公司得到了廣泛使用,最近發(fā)布的0.8版本中引入了State,使得其從一個(gè)純計(jì)算框架演變成了一個(gè)包含存儲(chǔ)和計(jì)算的實(shí)時(shí)計(jì)算新利器,還有剛才提到的Trident,提供更加友好的接口,同時(shí)可定制scheduler的特性也為其針對(duì)不同的應(yīng)用場(chǎng)景做優(yōu)化提供了更便利的手段,也有人已經(jīng)在基于storm的實(shí)時(shí)ql(query language)上邁出了腳本。在服務(wù)化方面,storm一直在朝著融入mesos框架的方向努力。同時(shí),storm也在實(shí)現(xiàn)細(xì)節(jié)上不斷地優(yōu)化,使用很多優(yōu)秀的開源產(chǎn)品,包括kryo,Disruptor,curator等等。可以想象,當(dāng)storm發(fā)展到1.0版本時(shí),一定是一款無比杰出的產(chǎn)品。

      猜你喜歡
      原語字段隊(duì)列
      測(cè)試原語:存儲(chǔ)器故障最小檢測(cè)序列的統(tǒng)一特征
      圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
      隊(duì)列里的小秘密
      基于多隊(duì)列切換的SDN擁塞控制*
      軟件(2020年3期)2020-04-20 00:58:44
      在隊(duì)列里
      密碼消息原語通信協(xié)議介紹及安全分析
      豐田加速駛?cè)胱詣?dòng)駕駛隊(duì)列
      CNMARC304字段和314字段責(zé)任附注方式解析
      無正題名文獻(xiàn)著錄方法評(píng)述
      關(guān)于CNMARC的3--字段改革的必要性與可行性研究
      渭南市| 天水市| 沙坪坝区| 东乌珠穆沁旗| 泰顺县| 马龙县| 孟州市| 柏乡县| 大埔县| 德昌县| 固始县| 紫云| 永吉县| 边坝县| 烟台市| 三台县| 平阳县| 重庆市| 丁青县| 格尔木市| 高密市| 河间市| 布拖县| 邹城市| 梅州市| 嵩明县| 侯马市| 望城县| 安徽省| 汉源县| 深水埗区| 柯坪县| 梁平县| 土默特右旗| 夏津县| 彩票| 葫芦岛市| 平凉市| 葵青区| 宿州市| 汽车|