java - 最近对大数据感兴趣,hadoop是不是过时了,应该深入学习spark?
黄舟
黄舟 2017-04-18 09:22:34
0
4
922

最近对大数据感兴趣,后面想往这方面发展,hadoop是不是过时了,应该深入学习spark?
因为也在上班,时间有限,担心花了时间学习hadoop后,公司却都不使用了,
因为了解到现在公司都在搞spark,因为是内存运算,效率会搞很多,
往过来人解惑,感谢!!

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(4)
Peter_Zhu

Hadoop并不仅仅是指Hadoop的计算模型MapReduce,而是指Hadoop生态圈,包括HDFSHBaseHive等。Spark也只是替代和丰富了Hadoop中的计算模型,其运行还需依赖于Hadoop生态圈的其它部分。所以我觉得如果仅仅是指Hadoop中的计算模型MapReduce,確實在某種程度上是過時的(但是也有適合場景)。

有興趣的話可以看看這篇文章:Spark And Hadoop Are Friends, Not Foes

迷茫

目前,Hadoop已經進入2.0時代。它共有三個組件:HDFSYARN以及MapReduceHDFS分散式檔案系統,負責儲存輸入和輸出資料;YARN是分散式資源管理系統,負責調度叢集的CPU和記憶體;而MapReduce是分散式運算框架,是Google為了進行進行叢集網頁排序(PageRank)而設計的, 一種非常通用的程式設計模型,可以用來寫單字計數, 網頁排序(PageRank)等各種大數據處理程序。

Hadoop MapReduce,Spark,Storm等等都是分散式計算框架,分別適用於不同的應用場景。 Hadoop MapReduce做離線計算例如日誌處理,Spark跑機器學習,Storm做即時流計算。這樣說吧, 它們相當於手機上不同的APP,有著不同的功能。因此,嚴格來說並沒有什麼誰取代誰的問題,不同的計算框架適用於不同的應用場景。當然,Spark與Hadoop YARN可以用來完成同一種任務,且Spark執行表現更好,但是Spark更耗記憶體。因此,Spark並非可以完全取代Hadoop MapReduce,因為有些應用程式使用Hadoop MapReduce執行時間長一點沒有問題,可以節省記憶體資源。

還有,Hadoop Mapreduce,Spark,Storm以及很多其他分佈式計算框架均屬於Hadoop生態系統,他們可以跑在同一個Hadoop集群,共享HDFS和YARN。將這些運算框架比喻為手機上的APP的話,則Hadoop的HDFS與YARN相當於手機的作業系統。

所以,我的建議是:

  1. Hadoop是大數據入門必須掌握的。因為MapReduce是最基礎的分散式計算框架, 其他分散式計算框架比如Spark是依賴它構建,理解MapReudce才能理解其他系統。然後,Hadoop是其他Hadoop生態系統計算框架的運作平台,繞不開的。

  2. 根據公司需求學習Spark等其他計算框架,自學只是入門,透過編寫實際應用才能真正掌握。

我的部落格也許能幫你快速搭建Hadoop測試環境:

  • 基於Docker搭建Hadoop叢集之升級版

阿神

hadoop是分散式運算的基礎設施。 Spark最多只能取代Hadoop MapReduce。許多大數據技術工具都基於HDFS和MapReduce,包括HBASE Hive Sqoop kafka等。當然做開發直接學習Spark更高,入門簡單

阿神

學習Hadoop和學Spark不衝突,目前大部分公司在使用Spark的時候,資料儲存還是放到Hadoop HDFS上的。 Spark SQL和Hive的都是可以用類別SQL,是相通的。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板