最近对大数据感兴趣,后面想往这方面发展,hadoop是不是过时了,应该深入学习spark?因为也在上班,时间有限,担心花了时间学习hadoop后,公司却都不使用了,因为了解到现在公司都在搞spark,因为是内存运算,效率会搞很多,往过来人解惑,感谢!!
人生最曼妙的风景,竟是内心的淡定与从容!
Hadoop并不仅仅是指Hadoop的计算模型MapReduce,而是指Hadoop生态圈,包括HDFS、HBase、Hive等。Spark也只是替代和丰富了Hadoop中的计算模型,其运行还需依赖于Hadoop生态圈的其它部分。所以我觉得如果仅仅是指Hadoop中的计算模型MapReduce,確實在某種程度上是過時的(但是也有適合場景)。
Hadoop
MapReduce
HDFS
HBase
Hive
Spark
有興趣的話可以看看這篇文章:Spark And Hadoop Are Friends, Not Foes
目前,Hadoop已經進入2.0時代。它共有三個組件:HDFS,YARN以及MapReduce。 HDFS是分散式檔案系統,負責儲存輸入和輸出資料;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相當於手機的作業系統。
所以,我的建議是:
Hadoop是大數據入門必須掌握的。因為MapReduce是最基礎的分散式計算框架, 其他分散式計算框架比如Spark是依賴它構建,理解MapReudce才能理解其他系統。然後,Hadoop是其他Hadoop生態系統計算框架的運作平台,繞不開的。
根據公司需求學習Spark等其他計算框架,自學只是入門,透過編寫實際應用才能真正掌握。
我的部落格也許能幫你快速搭建Hadoop測試環境:
基於Docker搭建Hadoop叢集之升級版
hadoop是分散式運算的基礎設施。 Spark最多只能取代Hadoop MapReduce。許多大數據技術工具都基於HDFS和MapReduce,包括HBASE Hive Sqoop kafka等。當然做開發直接學習Spark更高,入門簡單
學習Hadoop和學Spark不衝突,目前大部分公司在使用Spark的時候,資料儲存還是放到Hadoop HDFS上的。 Spark SQL和Hive的都是可以用類別SQL,是相通的。
Hadoop
并不仅仅是指Hadoop
的计算模型MapReduce
,而是指Hadoop
生态圈,包括HDFS
、HBase
、Hive
等。Spark
也只是替代和丰富了Hadoop
中的计算模型,其运行还需依赖于Hadoop
生态圈的其它部分。所以我觉得如果仅仅是指Hadoop
中的计算模型MapReduce
,確實在某種程度上是過時的(但是也有適合場景)。有興趣的話可以看看這篇文章:Spark And Hadoop Are Friends, Not Foes
目前,Hadoop已經進入2.0時代。它共有三個組件:HDFS,YARN以及MapReduce。 HDFS是分散式檔案系統,負責儲存輸入和輸出資料;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相當於手機的作業系統。
所以,我的建議是:
Hadoop是大數據入門必須掌握的。因為MapReduce是最基礎的分散式計算框架, 其他分散式計算框架比如Spark是依賴它構建,理解MapReudce才能理解其他系統。然後,Hadoop是其他Hadoop生態系統計算框架的運作平台,繞不開的。
根據公司需求學習Spark等其他計算框架,自學只是入門,透過編寫實際應用才能真正掌握。
我的部落格也許能幫你快速搭建Hadoop測試環境:
基於Docker搭建Hadoop叢集之升級版
hadoop是分散式運算的基礎設施。 Spark最多只能取代Hadoop MapReduce。許多大數據技術工具都基於HDFS和MapReduce,包括HBASE Hive Sqoop kafka等。當然做開發直接學習Spark更高,入門簡單
學習Hadoop和學Spark不衝突,目前大部分公司在使用Spark的時候,資料儲存還是放到Hadoop HDFS上的。 Spark SQL和Hive的都是可以用類別SQL,是相通的。