Storm精华问答 | task与executor有什么关系?
戳藍(lán)字“CSDN云計(jì)算”關(guān)注我們哦!
歸于Apache社區(qū),Storm被業(yè)界稱(chēng)為實(shí)時(shí)版Hadoop。隨著越來(lái)越多的場(chǎng)景對(duì)Hadoop的MapReduce高延遲無(wú)法容忍。而目前已是分布式技術(shù)領(lǐng)域最新爆發(fā)點(diǎn),Storm更是流計(jì)算技術(shù)中的佼佼者和主流。今天我們就一起來(lái)看看Storm的精華問(wèn)答!
1
Q:task與executor有什么關(guān)系?
A:在我們安裝配置Storm的時(shí)候,不知大家是否主要到了一個(gè)問(wèn)題,就是我們?cè)谂渲玫臅r(shí)候會(huì)加幾個(gè)worker的端口(supervisor.slots.ports:),比如眾多文檔中提到的6700/6701等等類(lèi)似的東西。沒(méi)錯(cuò),這就是我們定義了該supervisor最多的worker數(shù),worker中執(zhí)行一個(gè)bolt或者spout線(xiàn)程,我們就稱(chēng)之為task,而executor是物理上的線(xiàn)程概念,我們可以將其稱(chēng)為執(zhí)行線(xiàn)程;而task更多是邏輯概念上的,有時(shí)候bolt與spout的task會(huì)共用一個(gè)executor,特別是在系統(tǒng)負(fù)荷比較高的時(shí)候。
Q:Storm UI 里spout 統(tǒng)計(jì)的complete latency 的具體含義是什么?為什么emit 的數(shù)目會(huì)是acked的兩倍?
? ? ? A:簡(jiǎn)單地說(shuō),complete latency 表示了tuple 從emit 到被acked 經(jīng)過(guò)的時(shí)間,可以認(rèn)為是tuple以及該tuple 的后續(xù)子孫(形成一棵樹(shù))整個(gè)處理時(shí)間。其次spout 的emit 和transfered 還統(tǒng)計(jì)了spout和acker 之間內(nèi)部的通信信息,比如對(duì)于可靠處理的spout 來(lái)說(shuō),會(huì)在emit 的時(shí)候同時(shí)發(fā)送一個(gè)_ack_init給acker,記錄tuple id 到task id 的映射,以便ack 的時(shí)候能找到正確的acker task。
Q:Storm的Spout組件中的ack及fail是一個(gè)什么樣的機(jī)制呢?
? ? ? ?A:Storm保證每一個(gè)數(shù)據(jù)都得到有效處理,這是如何保證的呢?正是ack及fail機(jī)制確保數(shù)據(jù)都得到處理的保證,但是storm只是提供給我們一個(gè)接口,而具體的方法得由我們自己來(lái)實(shí)現(xiàn)。例如在spout下一個(gè)拓?fù)涔?jié)點(diǎn)的bolt上,我們定義某種情況下為數(shù)據(jù)處理失敗,則調(diào)用fail,則我們可以在fail方法中進(jìn)行數(shù)據(jù)重發(fā),這樣就保證了數(shù)據(jù)都得到了處理。其實(shí),通過(guò)讀storm的源碼,里面有講到,有些類(lèi)(BaseBasicBolt?)是會(huì)自動(dòng)調(diào)用ack和fail的,不需要我們程序員去ack和fail,但是其他Bolt就沒(méi)有這種功能了。
Q:IRichBolt與IBasicBolt接口有什么區(qū)別?
A:首先從類(lèi)的組成上進(jìn)行分析可以看到,IBasicBolt接口只有execute方法和declareOutputFields方法,而IRichBolt接口上除了以上幾個(gè)方法還有prepare方法和cleanup及map方法。而且其中execute方法是有些不一樣的,其參數(shù)列表不同。
總體來(lái)說(shuō)Rich方法比較完善,我們可以使用prepare方法進(jìn)行該Bolt類(lèi)的初始化工作,例如我們鏈接數(shù)據(jù)庫(kù)時(shí),需要進(jìn)行一次數(shù)據(jù)庫(kù)連接操作,我們就可以把該操作放入prepare中,只需要執(zhí)行一次就可以了。而cleanup方法能在該類(lèi)調(diào)用結(jié)束時(shí)進(jìn)行收尾工作,往往在處理數(shù)據(jù)的時(shí)候用到,例如在寫(xiě)hdfs(hadoop的文件系統(tǒng))數(shù)據(jù)的時(shí)候,在結(jié)束時(shí)需要進(jìn)行數(shù)據(jù)clear,則需要進(jìn)行數(shù)據(jù)收尾。當(dāng)然,根據(jù)官網(wǎng)及實(shí)際的測(cè)驗(yàn),該方法往往是執(zhí)行失敗的。
Q:發(fā)布topologies 到遠(yuǎn)程集群時(shí),出現(xiàn)Nimbus host is not set 異常,請(qǐng)問(wèn)是什么問(wèn)題?
? ? ?A:原因是Nimbus 沒(méi)有被正確啟動(dòng)起來(lái),可能是storm.yaml 文件沒(méi)有配置,或者配置有問(wèn)題。解決方法是:打開(kāi)storm.yaml 文件正確配置:nimbus.host: "xxx.xxx.xxx.xxx",重啟nimbus后臺(tái)程序即可。
小伙伴們沖鴨,后臺(tái)留言區(qū)等著你!
關(guān)于Storm,今天你學(xué)到了什么?還有哪些不懂的?除此還對(duì)哪些話(huà)題感興趣?快來(lái)留言區(qū)打卡啦!留言方式:打開(kāi)第XX天,答:……
同時(shí)歡迎大家搜集更多問(wèn)題,投稿給我們!風(fēng)里雨里留言區(qū)里等你~
-
福利
掃描添加小編微信,備注“姓名+公司職位”,加入【云計(jì)算學(xué)習(xí)交流群】,和志同道合的朋友們共同打卡學(xué)習(xí)!
推薦閱讀:
50個(gè)最有價(jià)值的數(shù)據(jù)可視化圖表(推薦收藏)
一鍵免費(fèi)自動(dòng)AI摳圖,效果連PS大哥也點(diǎn)贊!
被V神點(diǎn)贊, 我是如何用五子棋打敗以太坊排名最高的應(yīng)用的? |人物志
那些簡(jiǎn)歷造假拿 Offer 的程序員,后來(lái)都怎么樣了?
華為立 Flag:一年超越三星做全球智能手機(jī)老大!
騙局翻新, 暗網(wǎng)活躍度倍增, 2018加密貨幣犯罪報(bào)告敢看嗎?
春晚鬼畜 B 站日排行最高,趙本山:我的時(shí)代還沒(méi)有結(jié)束!
PDF翻譯神器,再也不擔(dān)心讀不懂英文Paper了
新聞聯(lián)播也可以拿來(lái)做數(shù)據(jù)分析?
喜歡就點(diǎn)擊“好看”吧
總結(jié)
以上是生活随笔為你收集整理的Storm精华问答 | task与executor有什么关系?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 快贷是哪个公司旗下的
- 下一篇: 银行取现金超过多少需要预约