999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

分布式實(shí)時(shí)計(jì)算引擎
——Storm研究

2015-11-05 02:24:50王潤(rùn)華毋建軍侯佳路
中國(guó)科技信息 2015年6期
關(guān)鍵詞:單詞

王潤(rùn)華 毋建軍 侯佳路

北京政法職業(yè)學(xué)院信息技術(shù)系

分布式實(shí)時(shí)計(jì)算引擎
——Storm研究

王潤(rùn)華 毋建軍 侯佳路

北京政法職業(yè)學(xué)院信息技術(shù)系

王潤(rùn)華(1978)女,碩士,講師,研究方向?yàn)橐苿?dòng)互聯(lián)網(wǎng)方向。

本文介紹了一種分布式實(shí)時(shí)計(jì)算引擎——Storm,它具有簡(jiǎn)單、高性能、高可靠、可伸縮等特點(diǎn),并且支持廣泛的編程語(yǔ)言。本文不僅介紹了Storm的架構(gòu)和特性,還結(jié)合實(shí)例演示了使用Strom進(jìn)行實(shí)時(shí)計(jì)算的具體過(guò)程。

過(guò)去十年在數(shù)據(jù)處理(data processing)領(lǐng)域發(fā)生了一場(chǎng)革命,MapReduce,Hadoop和其他相關(guān)技術(shù)的出現(xiàn),已經(jīng)使數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)能力、計(jì)算能力、伸縮能力達(dá)到了之前無(wú)法想象的高度。但是遺憾的是這些技術(shù)是“批處理系統(tǒng)”而不是實(shí)時(shí)系統(tǒng),實(shí)時(shí)性也不是這些系統(tǒng)所關(guān)心的,然而業(yè)界對(duì)實(shí)時(shí)處理海量數(shù)據(jù)的需求卻越來(lái)越強(qiáng)烈,Storm的出現(xiàn)填補(bǔ)了數(shù)據(jù)處理生態(tài)系統(tǒng)(data processing ecosystem)在實(shí)時(shí)方面的空白。

Storm概述

對(duì)于實(shí)時(shí)處理,典型的傳統(tǒng)方式是手工建立一個(gè)由queues和workers組成的網(wǎng)絡(luò)。workers處理來(lái)自queue的messages,更新數(shù)據(jù)庫(kù)(或其他操作),然后生成新的messages發(fā)送給其他的queues做進(jìn)一步處理。這種方式有以下幾個(gè)問(wèn)題。

(1)繁瑣:需要花大量的時(shí)間去配置向哪里發(fā)送messages、部署workers、部署intermediate queues,真正涉及實(shí)時(shí)處理邏輯代碼所占的比例很小。

(2)脆弱:缺乏完善的故障容錯(cuò)(f aul ttolerance)機(jī)制,在程序運(yùn)行過(guò)程中需要確保每一個(gè)worker和queue都是正常運(yùn)行的。

(3)伸縮性差:系統(tǒng)運(yùn)行過(guò)程中當(dāng)message的吞吐量超過(guò)了單臺(tái)物理機(jī)的承載能力時(shí),就需要將數(shù)據(jù)分布到更多的機(jī)器上去處理,這需要手工重新配置workers以便可以將數(shù)據(jù)分發(fā)新增的機(jī)器上,這樣做不僅麻煩還極易出錯(cuò)。

雖然queues和workers方式在容錯(cuò)和伸縮方面有很大的缺陷,但是基于消息處理(message processing)的模型卻非常適合作為實(shí)時(shí)計(jì)算的基礎(chǔ)模型,Strom也使用基于消息處理(message processing)的基礎(chǔ)模型。

Storm具有如下幾個(gè)主要特點(diǎn):

極其廣泛的應(yīng)用場(chǎng)景;

良好的伸縮性;

無(wú)消息丟失保證;

穩(wěn)定與可維護(hù)性好;

良好的容錯(cuò)性;

支持廣泛的編程語(yǔ)言;

Storm架構(gòu)

Storm集群

從表面上看Storm集群與Hadoop集群非常類似,Hadoop集群上運(yùn)行MapReduce任務(wù)而Storm集群運(yùn)行被稱為Topology的任務(wù),但MapReduce與Topology有著非常大的差別——最關(guān)鍵的一點(diǎn)是MapReduce任務(wù)最終會(huì)結(jié)束而Topology一直處理消息,直到被主動(dòng)結(jié)束。

Storm集群架構(gòu)如圖1所示,Storm集群由一個(gè)主節(jié)點(diǎn)(master node)和多個(gè)工作節(jié)點(diǎn)(worker node)組成。主節(jié)點(diǎn)上運(yùn)行著一個(gè)被稱為Nimbus的守護(hù)進(jìn)程,它負(fù)責(zé)在集群中部署代碼、為每個(gè)工作節(jié)點(diǎn)分派任務(wù)并監(jiān)控任務(wù)的執(zhí)行狀態(tài)。每個(gè)工作節(jié)點(diǎn)上也運(yùn)行著一個(gè)被稱為Supervisor的守護(hù)進(jìn)程,Supervisor監(jiān)聽分派給該工作節(jié)點(diǎn)的任務(wù),并根據(jù)需要啟動(dòng)或關(guān)閉工作進(jìn)程(worker processes),每個(gè)工作進(jìn)程負(fù)責(zé)執(zhí)行一個(gè)Topology的子集;每個(gè)Topology由分布在多個(gè)工作節(jié)點(diǎn)上的多個(gè)工作進(jìn)程共同執(zhí)行。

Nimbus與Supervisors之間通過(guò)一個(gè)Zookeeper集群來(lái)進(jìn)行協(xié)調(diào)。Nimbus和Supervisor被設(shè)計(jì)為無(wú)狀態(tài)和快速失敗(fail-fast)的,所有的狀態(tài)信息都保存在Zookeeper集群或本地磁盤中,這意味著Nimbus和Supervisor失敗退出或被結(jié)束后重新啟動(dòng)將不會(huì)丟失任何信息,這樣的設(shè)計(jì)使得Storm非常的穩(wěn)定。

Topology

前面提到Storm任務(wù)被稱為Topology,一個(gè)Topology實(shí)際上是一個(gè)由計(jì)算邏輯組成的“圖”,“圖”中每個(gè)節(jié)點(diǎn)包含計(jì)算邏輯,節(jié)點(diǎn)之間的連接指示數(shù)據(jù)如何在節(jié)點(diǎn)間傳播。Storm使用Thrift作為通信中間件,所以可以使用任何Thrift支持的語(yǔ)言來(lái)編寫Topology。

圖1 Storm集群架構(gòu)

Stream

Stream是Storm的核心抽象概念。在Storm中消息被稱為元組(tuple),Stream就是一個(gè)數(shù)量無(wú)限的元組序列,Storm提供了一組原語(yǔ)可以以分布和可靠的方式將一個(gè)Stream傳播到另一個(gè)Stream,其中Spout和Bolt就其中兩個(gè)最基本的原語(yǔ),用戶程序通過(guò)實(shí)現(xiàn)Spout和Bolt的接口來(lái)定制自己的應(yīng)用邏輯。Spout是Stream的源,Bolt是一個(gè)或多個(gè)Stream的消費(fèi)者,做一些處理,也可能生成新的Stream。一個(gè)復(fù)雜的應(yīng)用往往需要多個(gè)步驟也就是多個(gè)Bolt,Bolt可以做非常多的事情,例如:運(yùn)行函數(shù)、元組過(guò)濾、Stream聚合、Stream join、與數(shù)據(jù)庫(kù)對(duì)話等。

由Spout和Bolt組成的網(wǎng)絡(luò)(圖)既是Topology,而圖中的邊則是Stream,Stream指示元組如何在Spout和Bolt間傳播。Topology中的每個(gè)節(jié)點(diǎn)(Spout或Bolt)都是并行執(zhí)行的,用戶可以指定每個(gè)節(jié)點(diǎn)的并行度,Storm便會(huì)產(chǎn)生相應(yīng)數(shù)量的子任務(wù)在集群上執(zhí)行。

前面提到Topology會(huì)一直處理消息,直到被主動(dòng)結(jié)束。Storm會(huì)重新分配失敗的任務(wù),此外Strom保證沒有消息會(huì)丟失,即使硬件出現(xiàn)故障。

數(shù)據(jù)模型

Strom使用消息即元組(tuple)作為數(shù)據(jù)模型,一個(gè)元組可以有多個(gè)字段(field),字段的類型可以是字符串或字節(jié)數(shù)組,通過(guò)一定的擴(kuò)展用戶也可以使用自定義的字段類型。

Stream grouping

Stream grouping告訴Topology如何在節(jié)點(diǎn)間傳輸元組。前面提到Spout和Bolt都是并行執(zhí)行的,如圖3所示,如果Bolt A需要向Bolt B發(fā)送元組,那么元組如何在Bolt A的子任務(wù)和Bolt B的子任務(wù)間傳播呢?傳播策略的不同在有些情況下可能會(huì)極大的影響計(jì)算結(jié)果,Stream grouping就是用來(lái)解決這個(gè)問(wèn)題的,我們將在Strom應(yīng)用實(shí)例部分進(jìn)行詳細(xì)的說(shuō)明。

圓圈代表Spout或Bolt的并行子任務(wù)

Storm應(yīng)用實(shí)例

這里通過(guò)一個(gè)對(duì)單詞計(jì)數(shù)的Topol o gy(WordCountTopology)來(lái)演示Storm的具體應(yīng)用方法。代碼如圖4所示,該代碼摘自Storm自身的示例程序,并去掉了對(duì)說(shuō)明用法無(wú)關(guān)的細(xì)節(jié)。

圖2 Topology是由Spouts和Bolts組成的圖

圖3 Topology的執(zhí)行過(guò)程

圖4 WordCountTopology代碼

要實(shí)現(xiàn)一個(gè)Topology最主要的工作就是提供具體的Spout、Bolt (用戶的Spout和Bolt需要實(shí)現(xiàn)特定接口或繼承自已有的基類)和他們之間Stream grouping。WordCountTopology有一個(gè)Spout和兩個(gè)Bolt,Soput引用了已有的一個(gè)類RandomSentenceSpout來(lái)產(chǎn)生隨機(jī)的句子,Bolt SplitSentence將句子拆分成單詞,Bolt WordCount對(duì)單詞進(jìn)行統(tǒng)計(jì)。RandomSentenceSpout與SplitSentence之間的Stream grouping類型為Shuffle grouping,即子任務(wù)間任意傳播元組,而SplitSentence與WordCount間的Stream grouping類型為Fields grouping,即相同的單詞都傳輸給同一個(gè)子任務(wù),這對(duì)單詞統(tǒng)計(jì)的正確性是非常重要的。

結(jié)語(yǔ)

Storm的出現(xiàn)填補(bǔ)了數(shù)據(jù)處理生態(tài)系統(tǒng)(d ata processing ecosystem)在實(shí)時(shí)方面的空白,同時(shí)Storm具有高可靠、伸縮性好、編程模型簡(jiǎn)單、支持廣泛的編程語(yǔ)言等特點(diǎn),極大的簡(jiǎn)化了分布式實(shí)時(shí)系統(tǒng)的開發(fā)。

10.3969/j.issn.1001-8972.2015.06.027

猜你喜歡
單詞
What’s This?
Exercise 2
Exercise 4
Exercise 6
Exercise 1
Exercise 3
Exercise 5
單詞連一連
看圖填單詞
看完這些單詞的翻譯,整個(gè)人都不好了
主站蜘蛛池模板: 精品亚洲欧美中文字幕在线看| 韩国v欧美v亚洲v日本v| 最近最新中文字幕免费的一页| 色综合久久无码网| 国产精品.com| 精品国产成人国产在线| 波多野结衣一级毛片| 国产午夜一级毛片| 色久综合在线| 91在线免费公开视频| 成人福利在线看| 四虎永久免费在线| 日韩毛片视频| 国产精品护士| 噜噜噜综合亚洲| 欧美成人午夜视频免看| 91久久国产热精品免费| 日韩在线第三页| 亚洲视频欧美不卡| 国产亚洲精品在天天在线麻豆 | 动漫精品啪啪一区二区三区| 亚洲欧美一区二区三区图片| av一区二区无码在线| AV熟女乱| 97久久免费视频| 成年人午夜免费视频| 中文字幕亚洲乱码熟女1区2区| 亚洲最大福利视频网| 精品国产中文一级毛片在线看| 午夜色综合| 亚洲黄网在线| 亚洲天堂成人在线观看| 在线国产毛片| 一级一毛片a级毛片| 亚洲综合片| 成人免费一区二区三区| 丰满的少妇人妻无码区| 一级片免费网站| 一区二区三区国产| 97在线免费| 午夜国产在线观看| 国产真实乱子伦视频播放| 青青青视频91在线 | 区国产精品搜索视频| 亚洲性视频网站| 日韩免费毛片| 91无码人妻精品一区| 国产亚洲现在一区二区中文| 尤物在线观看乱码| 亚洲第一区精品日韩在线播放| 91毛片网| 亚洲第一黄色网址| 制服丝袜在线视频香蕉| 不卡无码网| 97狠狠操| 色婷婷综合激情视频免费看| 欧美精品成人一区二区视频一| 亚洲第一天堂无码专区| 国产情侣一区二区三区| 欧美激情视频二区三区| 午夜日本永久乱码免费播放片| 亚洲动漫h| 尤物特级无码毛片免费| 一级在线毛片| 欧美一区二区三区国产精品| 在线永久免费观看的毛片| 亚洲资源站av无码网址| 国产成人免费视频精品一区二区 | 综合亚洲网| 在线观看av永久| 欧美成人二区| 一区二区三区国产| 国产一线在线| 亚洲福利片无码最新在线播放| 国产精品久久自在自2021| 亚洲男人天堂2020| 国产美女精品人人做人人爽| 污视频日本| 国产成年无码AⅤ片在线| 福利在线不卡一区| 日韩AV无码免费一二三区| 青草国产在线视频|