Storm精华问答 | 最火的流式处理框架——Storm
戳藍(lán)字“CSDN云計(jì)算”關(guān)注我們哦!
Storm是Twitter開源的分布式實(shí)時(shí)大數(shù)據(jù)處理框架,被業(yè)界稱為實(shí)時(shí)版Hadoop。? 今天就為大家?guī)鞸torm誕生到發(fā)展再到實(shí)踐,趕快學(xué)習(xí)起來吧!
Q:Storm的誕生。
A:在2011年Storm開源之前,由于Hadoop的火紅,整個(gè)業(yè)界都在喋喋不休地談?wù)摯髷?shù)據(jù)。Hadoop的高吞吐,海量數(shù)據(jù)處理的能力使得人們可以方便地處理海量數(shù)據(jù)。但是,Hadoop的缺點(diǎn)也和它的優(yōu)點(diǎn)同樣鮮明——延遲大,響應(yīng)緩慢,運(yùn)維復(fù)雜。
有需求也就有創(chuàng)造,在Hadoop基本奠定了大數(shù)據(jù)霸主地位的時(shí)候,很多的開源項(xiàng)目都是以彌補(bǔ)Hadoop的實(shí)時(shí)性為目標(biāo)而被創(chuàng)造出來。而在這個(gè)節(jié)骨眼上Storm橫空出世了。
Q:Storm的特點(diǎn)
A:Storm帶著流式計(jì)算的標(biāo)簽華麗麗滴出場了,看看它的一些賣點(diǎn):
分布式系統(tǒng):可橫向拓展,現(xiàn)在的項(xiàng)目不帶個(gè)分布式特性都不好意思開源。
運(yùn)維簡單:Storm的部署的確簡單。雖然沒有Mongodb的解壓即用那么簡單,但是它也就是多安裝兩個(gè)依賴庫而已。
高度容錯(cuò):模塊都是無狀態(tài)的,隨時(shí)宕機(jī)重啟。
無數(shù)據(jù)丟失:Storm創(chuàng)新性提出的ack消息追蹤框架和復(fù)雜的事務(wù)性處理,能夠滿足很多級別的數(shù)據(jù)處理需求。不過,越高的數(shù)據(jù)處理需求,性能下降越嚴(yán)重。
多語言:實(shí)際上,Storm的多語言更像是臨時(shí)添加上去似的。因?yàn)?#xff0c;你的提交部分還是要使用Java實(shí)現(xiàn)。
Q:Storm已經(jīng)發(fā)展到0.8.2版本了,如今它取得的成就
A:有50個(gè)大大小小的公司在使用Storm,相信更多的不留名的公司也在使用。這些公司中不乏淘寶,百度,Twitter,Groupon,雅虎等重量級公司。
從開源時(shí)候的0.5.0版本,到現(xiàn)在的0.8.0+,和即將到來的0.9.0+。先后添加了以下重大的新特性:
使用kryo作為Tuple序列化的框架(0.6.0)
添加了Transactional topologies(事務(wù)性拓?fù)?#xff09;的支持(0.7.0)
添加了Trident的支持(0.8.0)
引入netty作為底層消息機(jī)制(0.9.0)
Transactional topologies和Trident都是針對實(shí)際應(yīng)用中遇到的重復(fù)計(jì)數(shù)問題和應(yīng)用性問題的解決方案??梢钥闯?#xff0c;實(shí)際的商用給予了Storm很多良好的反饋。
在GitHub上超過4000個(gè)項(xiàng)目負(fù)責(zé)人。Storm集成了許多庫,支持包括Kestrel、Kafka、JMS、Cassandra、Memcached以及更多系統(tǒng)。隨著支持的庫越來越多,Storm更容易與現(xiàn)有的系統(tǒng)協(xié)作。Storm的擁有一個(gè)活躍的社區(qū)和一群熱心的貢獻(xiàn)者。過去兩年,Storm的發(fā)展是成功的。
Q:在Storm的學(xué)習(xí)過程中,感覺難以理解的部分有:1)Storm的反饋機(jī)制的設(shè)計(jì)原理;2)HBase用在線上欄位高可用保障方面的采集過程;3)前端欄位快照數(shù)據(jù)回流,每次訪問過程中商品。這三個(gè)問題應(yīng)該如何理解?
A:1)可以簡單參考下圖
實(shí)際生產(chǎn)環(huán)境中需要計(jì)算欄位的產(chǎn)品列表不同算法的一些實(shí)時(shí)指標(biāo),不斷的反饋模型,修正相關(guān)因子或權(quán)重。
2)比如,采集0.98等版本的HBase,用默認(rèn)的JMX不是很好,讀到的某些數(shù)據(jù)往往是溢出的,不是很準(zhǔn),用HBaseClient接口收集相關(guān)更精確的數(shù)據(jù)
3)盡可能的保存每一個(gè)點(diǎn)擊行為的當(dāng)前的快照,比如商品當(dāng)前的訂單量、訪問量、價(jià)格等,用來離線訓(xùn)練,這些數(shù)據(jù)全部都走tracker方式,數(shù)據(jù)量比較大,在調(diào)用服務(wù)端API的時(shí)候可以異步寫到Kafka,再通過Gobblin等sync到HDFS。
Q:Kafka在Storm中的角色是什么呢?是作為分流的解決方案,還是作為通信的工具?Kafka的前置機(jī)是什么?數(shù)據(jù)量大的時(shí)候Kafka會(huì)不會(huì)崩掉?
A:Kafka在Storm之前扮演一個(gè)緩沖的消息隊(duì)列;Kafka最開始的前置一般有Flume等,其他消息也可以直接往Kafka寫,Storm的中間過程也可以存到Kafka中,當(dāng)做一個(gè)消息隊(duì)列來用;雙十一的時(shí)候,分區(qū)設(shè)置小,Kafka滿了,來不及處理崩過,寫Kafka的時(shí)候;如果客戶端直接寫Kafka,也要注意,并發(fā)量大會(huì)把Kafka搞掛。采用異步寫+本地緩存寫Kafka,比如log4j寫Kafka,基本的異步和本地緩存等已經(jīng)做了,數(shù)據(jù)量再大的時(shí)候,加一層Flume等。
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計(jì)算學(xué)習(xí)交流群】,和志同道合的朋友們共同打卡學(xué)習(xí)!
2、公眾號后臺回復(fù):白皮書,獲取IDC最新數(shù)據(jù)白皮書整理資料!
推薦閱讀:
Elastic Jeff Yoshimura:開源正在開啟新一輪的創(chuàng)新 | 人物志
深入淺出Docker 鏡像 | 技術(shù)頭條
19歲當(dāng)老板, 20歲ICO失敗, 21歲將項(xiàng)目掛到了eBay, 為何初創(chuàng)公司如此艱難?
碼二代的出路是什么?
機(jī)器學(xué)習(xí)萌新必備的三種優(yōu)化算法 | 選型指南
小程序的侵權(quán)“生死局”
@996 程序員,ICU 你真的去不起!
真香,朕在看了! 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的Storm精华问答 | 最火的流式处理框架——Storm的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FreeWheel是一家怎样的公司?|
- 下一篇: Boost:原子性的用法测试程序