Storm精华问答 | storm与Hadoop有什么区别?
戳藍字“CSDN云計算”關注我們哦!
歸于Apache社區,Storm被業界稱為實時版Hadoop。隨著越來越多的場景對Hadoop的MapReduce高延遲無法容忍。而目前已是分布式技術領域最新爆發點,Storm更是流計算技術中的佼佼者和主流。今天我們就一起來看看Storm的精華問答!
1
Q:task與executor有什么關系?
A:在我們安裝配置Storm的時候,不知大家是否主要到了一個問題,就是我們在配置的時候會加幾個worker的端口(supervisor.slots.ports:),比如眾多文檔中提到的6700/6701等等類似的東西。沒錯,這就是我們定義了該supervisor最多的worker數,worker中執行一個bolt或者spout線程,我們就稱之為task,而executor是物理上的線程概念,我們可以將其稱為執行線程;而task更多是邏輯概念上的,有時候bolt與spout的task會共用一個executor,特別是在系統負荷比較高的時候。
2
Q:storm與Hadoop區別?
A:storm用于實時計算,hadoop用于離線計算
storm處理的數據保存在內存中,源源不斷;hadoop處理的數據保存在文件系統中,一批一批
storm的數據通過網絡傳輸進來的;hadoop的數據保存在磁盤中
storm與hadoop的編程模型相似:
3
Q:Storm的Spout組件中的ack及fail是一個什么樣的機制呢?
? ? ? A:Storm保證每一個數據都得到有效處理,這是如何保證的呢?正是ack及fail機制確保數據都得到處理的保證,但是storm只是提供給我們一個接口,而具體的方法得由我們自己來實現。例如在spout下一個拓撲節點的bolt上,我們定義某種情況下為數據處理失敗,則調用fail,則我們可以在fail方法中進行數據重發,這樣就保證了數據都得到了處理。其實,通過讀storm的源碼,里面有講到,有些類(BaseBasicBolt?)是會自動調用ack和fail的,不需要我們程序員去ack和fail,但是其他Bolt就沒有這種功能了。
4
Q:IRichBolt與IBasicBolt接口有什么區別?
A:首先從類的組成上進行分析可以看到,IBasicBolt接口只有execute方法和declareOutputFields方法,而IRichBolt接口上除了以上幾個方法還有prepare方法和cleanup及map方法。而且其中execute方法是有些不一樣的,其參數列表不同。
總體來說Rich方法比較完善,我們可以使用prepare方法進行該Bolt類的初始化工作,例如我們鏈接數據庫時,需要進行一次數據庫連接操作,我們就可以把該操作放入prepare中,只需要執行一次就可以了。而cleanup方法能在該類調用結束時進行收尾工作,往往在處理數據的時候用到,例如在寫hdfs(hadoop的文件系統)數據的時候,在結束時需要進行數據clear,則需要進行數據收尾。當然,根據官網及實際的測驗,該方法往往是執行失敗的。
5
Q:發布topologies 到遠程集群時,出現Nimbus host is not set 異常,請問是什么問題?
? ? ?A:原因是Nimbus 沒有被正確啟動起來,可能是storm.yaml 文件沒有配置,或者配置有問題。解決方法是:打開storm.yaml 文件正確配置:nimbus.host: "xxx.xxx.xxx.xxx",重啟nimbus后臺程序即可。
小伙伴們沖鴨,后臺留言區等著你!
關于Hadoop,今天你學到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風里雨里留言區里等你~
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
2、公眾號后臺回復:白皮書,獲取IDC最新數據白皮書整理資料!
推薦閱讀:
上萬條數據撕開微博熱搜的真相!
IT公司老板落水,各部門員工怎么救??
HTML 30 年進化史
讀了鴻蒙 OS 的代碼后,我發現優秀項目都有這個共性!
字節跳動李航:自學機器學習,研究AI三十載,他說AI發展或進入平緩期
主鏈增幅最高飚至 152%,主流幣卻驚現回落;以太坊發幣速度持續放緩
真香,朕在看了!
總結
以上是生活随笔為你收集整理的Storm精华问答 | storm与Hadoop有什么区别?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Boost:转换sqrt的测试程序
- 下一篇: 云栖大会 | 释放计算弹性,阿里云做了很