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