有问有答 | Storm技术内幕与实践精华问答
戳藍(lán)字“CSDN云計(jì)算”關(guān)注我們哦!
Storm是Twitter開(kāi)源的分布式實(shí)時(shí)大數(shù)據(jù)處理框架,被業(yè)界稱為實(shí)時(shí)版Hadoop。 隨著越來(lái)越多的場(chǎng)景對(duì)Hadoop的MapReduce高延遲無(wú)法容忍,比如網(wǎng)站統(tǒng)計(jì)、推薦系統(tǒng)、預(yù)警系統(tǒng)、金融系統(tǒng)等, 大數(shù)據(jù)實(shí)時(shí)處理解決方案的應(yīng)用日趨廣泛,目前已是分布式技術(shù)領(lǐng)域最新爆發(fā)點(diǎn),而Storm更是流計(jì)算技術(shù)中的佼佼者和主流。那么,今天“有問(wèn)有答”第二期,就為大家?guī)?lái)《Storm技術(shù)內(nèi)幕與實(shí)踐精華問(wèn)答》,趕快學(xué)習(xí)起來(lái)吧!
Q:Storm的實(shí)時(shí)性處理速度很高,有沒(méi)有一個(gè)最高點(diǎn)的限制?比如在入口處服務(wù)器的CPU和內(nèi)存一定的情況下。在處理實(shí)時(shí)數(shù)據(jù)的時(shí)候,不用Storm,自己手動(dòng)寫(xiě)一個(gè)分布式處理的模塊(類似負(fù)荷分擔(dān)),對(duì)比Storm有什么優(yōu)劣呢?
A:Storm處理速度在毫秒級(jí),實(shí)際應(yīng)用也取決于計(jì)算的復(fù)雜度和查詢的外部數(shù)據(jù)帶來(lái)的開(kāi)銷。自己寫(xiě)的話,考慮各種情況的話編碼量會(huì)多不少,而且消息計(jì)算和分發(fā)調(diào)整沒(méi)那么靈活,后期在分布式集群中調(diào)優(yōu)也沒(méi)那么方便;Storm不依賴入口處服務(wù)器,主服務(wù)器Nimbus根據(jù)初始配置等計(jì)算好各任務(wù),即把各任務(wù)分配到分布式環(huán)境的各個(gè)worker上,可以設(shè)置多個(gè)worker實(shí)例并行處理入口或者中間的消息解決入口服務(wù)器的負(fù)載問(wèn)題,實(shí)際開(kāi)發(fā)中只要設(shè)計(jì)好消息計(jì)算和轉(zhuǎn)發(fā)的拓?fù)?#xff0c;讓代碼更多的關(guān)心計(jì)算、統(tǒng)計(jì)等的業(yè)務(wù)邏輯,簡(jiǎn)化了開(kāi)發(fā)分布式應(yīng)用的門檻。過(guò)程如下:
Q:實(shí)時(shí)處理利器Storm與Spark。我們?cè)谒鼈冎g做出選擇時(shí),應(yīng)該考慮到哪些指標(biāo)?或者說(shuō)它們各自有什么優(yōu)勢(shì)?
A:Spark?Streaming是批處理,一桶桶的去接水;Storm是流計(jì)算(當(dāng)然Trident也有部分批量處理),接好自來(lái)水管子,一條條消息通過(guò)管子自動(dòng)的流到終點(diǎn);計(jì)算方式的不同,導(dǎo)致了兩個(gè)差異:
1?)往往Storm是毫秒級(jí)的,Spark?Steaming是秒級(jí)以上的應(yīng)用
2?)無(wú)狀態(tài)的求和、計(jì)數(shù)等應(yīng)用Storm更適合,反應(yīng)實(shí)際情況更及時(shí),我們實(shí)時(shí)意圖的功能用了Storm,最快的反應(yīng)用戶最新一條行為;需要分治法、批量計(jì)算的應(yīng)用,用Spark?Streaming,對(duì)于實(shí)時(shí)要求高一點(diǎn)的應(yīng)用,可以根據(jù)具體的實(shí)際應(yīng)用的需要,調(diào)整“桶”的大小,來(lái)提高響應(yīng)的時(shí)間。Spark和Yarn結(jié)合的更好,Storm是和Mesos結(jié)合的更好。Spark不僅僅包含Spark?Steaming,有圖計(jì)算、MLib、Spark?SQL等。
Q:對(duì)于傳統(tǒng)使用數(shù)據(jù)庫(kù)的報(bào)表,數(shù)據(jù)有上億條。用戶針對(duì)這些數(shù)據(jù)查詢,查詢條件包含時(shí)間段、區(qū)域等等十幾個(gè),總之查詢條件是多維度的,使用存儲(chǔ)過(guò)程實(shí)現(xiàn),需要多次group?by,耗時(shí)近十分鐘。請(qǐng)問(wèn)這種場(chǎng)景下想要實(shí)時(shí)查詢,秒級(jí)返回結(jié)果,Storm可適用?
A:不是很合適,要么放HDFS中通過(guò)Impla,Spark?SQL,Kylin等交互式查詢,要么通過(guò)傳統(tǒng)的數(shù)據(jù)倉(cāng)庫(kù)來(lái)做,流式計(jì)算主要處理實(shí)時(shí)產(chǎn)生的增量數(shù)據(jù)。
Q:在Storm的學(xué)習(xí)過(guò)程中,感覺(jué)難以理解的部分有:1)Storm的反饋機(jī)制的設(shè)計(jì)原理;2)HBase用在線上欄位高可用保障方面的采集過(guò)程;3)前端欄位快照數(shù)據(jù)回流,每次訪問(wèn)過(guò)程中商品。這三個(gè)問(wèn)題應(yīng)該如何理解?
A:1)可以簡(jiǎn)單參考下圖
實(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)前的訂單量、訪問(wèn)量、價(jià)格等,用來(lái)離線訓(xùn)練,這些數(shù)據(jù)全部都走tracker方式,數(shù)據(jù)量比較大,在調(diào)用服務(wù)端API的時(shí)候可以異步寫(xiě)到Kafka,再通過(guò)Gobblin等sync到HDFS。
Q:Kafka在Storm中的角色是什么呢?是作為分流的解決方案,還是作為通信的工具?Kafka的前置機(jī)是什么?數(shù)據(jù)量大的時(shí)候Kafka會(huì)不會(huì)崩掉?
A:Kafka在Storm之前扮演一個(gè)緩沖的消息隊(duì)列;Kafka最開(kāi)始的前置一般有Flume等,其他消息也可以直接往Kafka寫(xiě),Storm的中間過(guò)程也可以存到Kafka中,當(dāng)做一個(gè)消息隊(duì)列來(lái)用;雙十一的時(shí)候,分區(qū)設(shè)置小,Kafka滿了,來(lái)不及處理崩過(guò),寫(xiě)Kafka的時(shí)候;如果客戶端直接寫(xiě)Kafka,也要注意,并發(fā)量大會(huì)把Kafka搞掛。采用異步寫(xiě)+本地緩存寫(xiě)Kafka,比如log4j寫(xiě)Kafka,基本的異步和本地緩存等已經(jīng)做了,數(shù)據(jù)量再大的時(shí)候,加一層Flume等。
2019年,我們的新欄目,有問(wèn)有答今天就到這里啦,明天我們不見(jiàn)不散。兩期問(wèn)答結(jié)束后,您對(duì)此欄目有什么意見(jiàn)和看法呢?您想要學(xué)習(xí)哪方面的問(wèn)題,我們可以根據(jù)您提供的話題,有針對(duì)性的進(jìn)行問(wèn)答。所以,趕快留言吧!
---------------- ?完? --------------
1.微信群:
添加小編微信:color_ld,備注“進(jìn)群+姓名+公司職位”即可,加入【云計(jì)算學(xué)習(xí)交流群】,和志同道合的朋友們共同打卡學(xué)習(xí)!
2.征稿:
投稿郵箱:liudan@csdn.net;微信號(hào):color_ld。請(qǐng)備注投稿+姓名+公司職位。
推薦閱讀
有問(wèn)有答 | 分布式服務(wù)框架精華問(wèn)答
深入理解與應(yīng)用Hadoop中的MapReduce
等了20年的物聯(lián)網(wǎng),這次真的會(huì)成功嗎?
云要聞 | 騰訊在華南建云計(jì)算基地;致敬Larry Roberts
網(wǎng)友們票選的2018 Best Paper,你pick誰(shuí)?
程序員有話說(shuō) | 大專生畢業(yè) 6 年月薪 3W+:不從眾也不普通
Windows 10 終于干掉了 Windows 7!
比特幣拒絕第340次“被死亡”
程序員搶票姿勢(shì) ↓交朋友還能搶票?
為交流學(xué)習(xí),請(qǐng)備注搶票+姓名+公司職位
點(diǎn)擊“閱讀原文”,打開(kāi) CSDN App 閱讀更貼心!
總結(jié)
以上是生活随笔為你收集整理的有问有答 | Storm技术内幕与实践精华问答的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 银行贷款还不上有什么后果 会留下不良记录
- 下一篇: Cloud一分钟 | 谷歌投资的AR云平