您好,登錄后才能下訂單哦!
Spark作為數(shù)據(jù)處理的核心應(yīng)用,有著重要的作用和地位,那么spark能不能取代Hadoop而存在呢?
Spark只是分布式計(jì)算平臺(tái),而hadoop已經(jīng)是分布式計(jì)算、存儲(chǔ)、管理的生態(tài)系統(tǒng)。
與Spark相對(duì)應(yīng)的是Hadoop MapReduce。Spark是可以取代MapReduce的,從而成為Hadoop系統(tǒng)中不可或缺的一部分。但是為什么MapReduce還在被使用呢?因?yàn)橛泻芏喱F(xiàn)有的應(yīng)用還依賴于它,它不是一個(gè)獨(dú)立的存在,已經(jīng)成為其他生態(tài)不可替代的部分,比如pig,hive等。
至于Spark相對(duì)于Hadoop的優(yōu)勢(shì),有以下幾點(diǎn):
(1)任務(wù)調(diào)度的開銷
傳統(tǒng)的MR系統(tǒng),如Hadoop 是為了運(yùn)行長(zhǎng)達(dá)數(shù)小時(shí)的批量作業(yè)而設(shè)計(jì)的,在某些極端情況下,提交一個(gè)任務(wù)的延遲非常高。
spark采用了事件驅(qū)動(dòng)的類庫 akka來啟動(dòng)任務(wù),可以避免進(jìn)程或線程啟動(dòng),以及切換開銷。
(2)數(shù)據(jù)格式和內(nèi)存布局
由于MR Schema On Read處理方式會(huì)引起較大的處理開銷。Spark抽象出分布式內(nèi)存存儲(chǔ)結(jié)構(gòu)彈性分布式數(shù)據(jù)集RDD,進(jìn)行數(shù)據(jù)的存儲(chǔ)。RDD能支持粗粒度寫操作。但對(duì)于讀取操作,RDD可以精確到每條幾率,這使得RDD可以用來作為分布式索引,Spark的特性是能夠控制數(shù)據(jù)在不同節(jié)點(diǎn)上的分區(qū),用戶可以自定義分區(qū)策略,如Hash分區(qū)。Spark 和SparkSQL在Spark的基礎(chǔ)上實(shí)現(xiàn)了列存儲(chǔ)和列存儲(chǔ)壓縮
但是分布式計(jì)算僅僅是Hadoop的一部分,所以比較Hadoop和Spark實(shí)際上是Spark和MapReduce的對(duì)比:
1、 更快
2、 更加容易使用
編程的時(shí)候沒有Map+Reduce函數(shù),而且配置起來超級(jí)方便。除支持JAVA外,還支持Scala、Python、R。特別是Scala,很適合寫數(shù)據(jù)分析的程序,而Mapreduce用JAVA很繁瑣。
3、 巨好用的庫
4、 運(yùn)行方便
Spark是可以脫離hadoop運(yùn)行的,比如數(shù)據(jù)可以從數(shù)據(jù)庫或者本地文件里面抽取。不過畢竟大數(shù)據(jù)時(shí)代,大家都習(xí)慣于將Spark和hadoop通過Mesos或者YARN結(jié)合起來用;主要用Hadoop的HDFS,當(dāng)然Hbase或者Hive這種HDFS之上的組件,Spark也支持。
因此Spark是不可以取代Hadoop的,我們要區(qū)分兩者的作用和地位,才可以更好的把握應(yīng)用。我平常的時(shí)候喜歡看“大數(shù)據(jù)cn”這些微信公眾號(hào),里面的一些介紹也挺不錯(cuò)的,大家平時(shí)可以去看看,對(duì)于改善自己的知識(shí)架構(gòu)有著重要的作用。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。