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