spark真的要取代hadoop了麼,還有阿里的flink未來會是一種趨勢麼?

四川醍醐


大家好,我是LakeShen

作為一個軟件開發工程師,我從事的方向主要是大數據方向,結合我的工作經驗,我個人認為,Spark不會完全取代Hadoop,Hadoop還有很多其他方面的大數據組件,這些組件是Spark所沒有的,同時,Flink在未來的發展,會作為實時計算方面的一種發展趨勢。下面來說一下我個人的看法:

Flink未來的發展

首先,Flink是什麼?Flink一種流式處理的實時計算引擎,它消費的數據可以來自Kafka、MetaQ等消息中間件,旨在降低數據計算的延時,使得我們可以實時監控我們業務相關的指標信息。Flink 目前作為國內最火的一款實時計算引擎,國內有很多互聯網大公司都使用Flink進行實時計算,阿里的Blink(Flink 阿里內部版本)、騰訊、今日頭條、美團等。Flink 天然的狀態管理,使得其能夠應用於公司的各種有狀態的實時計算。下面來看一下Flink Github上面的信息:

從上圖可以看到,關注Flink的人數達到了9929位人數,同時,每天都有很多用戶關注Flink。根據Apache 軟件基金會2019年的財報,Flink持續活躍,其社區郵件列表在所有開源項目活躍度第一。這也意味著,Flink 目前在實時計算方面非常的火熱。在加上阿里在Flink 1.9版本開源了很多 Flink SQL方面的特性,我相信,在未來,Flink在實時計算方面,是一種發展趨勢。

Spark相對於Hadoop的優勢

Spark本質也是一種大數據計算框架,它相對於Hadoop最重要的優勢,我個人認為是Spark能夠將中間計算的結果放在內存中,而Hadoop的中間結果只能放在磁盤上。Spark充分的利用的計算機內存的優勢,在數據量非常大的情況下,訪問計算機內存的速度肯定要比訪問磁盤快的多。一個離線任務,使用Spark幾分鐘就能跑完,而使用Hadoop可能需要幾十分鐘。時間上面的延遲,業務同學是肯定不會容忍的。

同時,用戶在開發Spark任務時,由於Spark 代碼開發的便利性,用戶幾行代碼就可以開發出Spark任務,但是Hadoop任務你需要編寫Mapper類、Reducer類。這極大的增加了開發同學開發任務的複雜度。所以,我個人認為,在離線計算方面,Spark在未來必然會取代Hadoop。

Spark相對於Hadoop的不足

Hadoop主要由三方面構成,MR計算模型、Yarn資源管理框架、HDFS分佈式文件存儲。雖然Hadoop在離線計算方面相對於Spark較慢,但是其在資源管理和分佈式文件存儲方面做得非常完善,很多公司不會為了計算快而完全放棄Hadoop,Spark只是一款大數據計算框架,它沒有自己的資源管理框架和存儲。Spark的資源管理使用的是Hadoop Yarn,底層的文件存儲,使用的Hadoop HDFS。Spark的優勢只是其比Hadoop在離線計算方面速度快,但在其他方面,比如資源管理等,根本沒有任何優勢。

總結

所以,我個人認為,未來在離線計算方面,Spark必然會代替Hadoop作為很多大數據公司的首選。但是由於Hadoop其底層的資源管理框架Yarn和文件存儲HDFS已經非常完善,所以互聯網公司還會使用Hadoop,但會使用Spark來進行離線數據計算。同時,Flink未來在實時計算方面肯定是一種發展趨勢,在加上國內阿里的大力推廣和運營,我相信Flink以後發展會越來越好。

我是LakeShen,如果你覺得我的見解對你有幫助的話,其可以點個贊或者關注我吧,我會一直持續分享我在科技方面的見解,感謝。


分享到:


相關文章: