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