Spark精华问答 | 为什么选择Spark作为流计算引擎?
總的來說,Spark采用更先進的架構,使得靈活性、易用性、性能等方面都比Hadoop更有優勢,有取代Hadoop的趨勢,但其穩定性有待進一步提高。我總結,具體表現在如下幾個方面。
1
Q:為什么選擇Kafka去承擔類似數據總線的角色?
A:絕大部分是由于它簡單的架構以及出色的吞吐量, 并且與Spark也有專門的集成模塊. Kafka的出色吞吐量主要是來自于最大化利用系統緩存以及順序讀寫所帶來的優點, 同時offset和partition的涉及也提供了較好的容災性.
Q:為什么選擇Spark作為流計算引擎?
A:主要是由于Spark本身優雅的RDD設計讓分布式編程更簡單, 同時結合Spark的內存緩存層也使得計算更快,而Spark對各種技術的集成與支持, 能夠使技術棧更簡單和通用, 也是選用它的一個重要原因. 而Spark的DirectKafkaInputDStream也提供了簡單有效的HA.
3Q:Spark和Hadoop的操作模型區別
A:Hadoop:只提供了Map和Reduce兩種操作所有的作業都得轉換成Map和Reduce的操作。
Spark:提供很多種的數據集操作類型比如Transformations 包括map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues,sort,partionBy等多種操作類型,還提供actions操作包括Count,collect, reduce, lookup, save等多種。這些多種多樣的數據集操作類型,給開發上層應用的用戶提供了方便。
Q:spark Streaming 是什么?
A:Spark Streaming是一種構建在Spark上的實時計算框架,它擴展了Spark處理大規模流式數據的能力。
首先,Spark Streaming把實時輸入數據流以時間片Δt (如1秒)為單位切分成塊,Spark Streaming會把每塊數據作為一個RDD,并使用RDD操作處理每一小塊數據,每個塊都會生成一個Spark Job處理,最終結果也返回多塊。在Spark Streaming中,則通過操作DStream(表示數據流的RDD序列)提供的接口,這些接口和RDD提供的接口類似。?
正如Spark Streaming最初的目標一樣,它通過豐富的API和基于內存的高速計算引擎讓用戶可以結合流式處理,批處理和交互查詢等應用。因此Spark Streaming適合一些需要歷史數據和實時數據結合分析的應用場合。當然,對于實時性要求不是特別高的應用也能完全勝任,另外通過RDD的數據重用機制可以得到更高效的容錯處理。
5
Q:Spark streaming+Kafka應用
A:WeTest輿情監控對于每天爬取的千萬級游戲玩家評論信息都要實時的進行詞頻統計,對于爬取到的游戲玩家評論數據,我們會生產到Kafka中,而另一端的消費者我們采用了Spark Streaming來進行流式處理,首先利用上文我們闡述的Direct方式從Kafka拉取batch,之后經過分詞、統計等相關處理,回寫到DB上(至于Spark中,由此高效實時的完成每天大量數據的詞頻統計任務。
小伙伴們沖鴨,后臺留言區等著你!
關于Spark,今天你學到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風里雨里留言區里等你~
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
推薦閱讀:
如何高效地準備技術面試?
漫畫:有趣的“帽子問題”
我為什么放棄了 Chrome?
5天破10億的哪吒,為啥這么火,Python來分析
通俗易懂:圖解10大CNN網絡架構
互聯網公司上演反腐風暴;GitHub CEO 對斷供表示無能為力;程序員面試錦集| 開發者周刊
在其他國家被揭穿騙子又盯上非洲? 這幾個騙子公司可把非洲人民坑苦了……
總結
以上是生活随笔為你收集整理的Spark精华问答 | 为什么选择Spark作为流计算引擎?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女孩适合学什么专业(女生最吃香的专业)
- 下一篇: 支票2021年10月20日怎么写(支票上