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

誰取了我的id


大家好,我是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,如果你覺得我的見解對你有幫助的話,其可以點個贊或者關注我吧,我會一直持續分享我在科技方面的見解,感謝。


Lake說科技


首先,想說一件事情是,hadoop絕對不會退出舞臺。目前有些言論或hadoop已死,因為已經有很多代替它的框架出現。

我想說這樣的說法是不瞭解hadoop的組成。hadoop核心之一HDFS,這個東西目前還沒有很好的技術可以取代,雖然現在也有一些技術實現,但要取代還是不可能的,不過未來應該會被取代掉,技術是不斷髮展的。

能夠大規模分佈式的存儲文件,目前hdfs依然是最好的方式。我想那些說hadoop大勢已去的人,更多的應該是指MR吧。

MapReduce的確是個效率低下的東西,但是我要強調的是,MR是元老,即便現在沒人會去手寫MR去跑任務,但我們不能不尊重MR帶給我們的思想。而且,現在hive依然是跑的MR任務,也沒有完全被淘汰。

那麼說起Spark,的確,SparkSql可以跑離線,SparkStreaming可以跑實時,更有structureStreaming的出現讓人眼前一亮。但是我要說,Spark是基於內存基礎的,如果你對集群內存吃緊,有很多部門或模塊共用集群跑任務,那麼你還是老老實實的跑MR吧,因為Spark沒內存是跑步起來的。

至於Flink,恩,這個東西很強大,但是它的強大是和Spark做比較的,而且強大的是其架構上的設計,處理流式數據的思想。而且Flink也還在發展期,目標是SQL化。所以現在越來越多開發者選擇用spark,flink去代替MR做計算處理。但我還是那句話,集群內存要充足。

所以綜上,hadoop的分佈式文件系統hdfs是沒有被取代的,依然離不開,而計算框架MR應該會慢慢退出歷史舞臺,但其思想和地位無法撼動。不過我相信未來在大數據處理上會有更優秀的技術出現,也會更加的便捷。


分享到:


相關文章: