-
1 # 小熊社長
-
2 # 斯帕克影視
根據現有的發展,目前spark還不能完全代替Hadoop。
我們知道Hadoop包含三個元件yarn,hdfs,MapReduce,分別對應解決三個方面的問題,資源排程(yarn),分散式儲存(hdfs),分散式計算(mapreudce)。而spark只解決了分散式計算方面的問題,跟MapReduce需要頻繁寫磁碟不同,spark重複利用記憶體,大大提高了計算效率,在分散式計算方面spark大有取代MapReduce之勢,而在資源排程,和分散式儲存方面spark還無法撼動。
-
3 # 菜菜菜鳥
Spark可以對Hadoop起到一個很好的補充作用,而且在某種程度上,兩者可以並行。Hadoop建立分散式檔案系,而Spark負責進行高效地資料運算,從而搭建一個理想的大資料處理平臺。
Hadoop解決了大資料(大到一臺計算機無法進行儲存,一臺計算機無法在要求的時間內進行處理)的可靠儲存和處理。
HDFS,在由普通PC組成的叢集上提供高可靠的檔案儲存,透過將塊儲存多個副本的辦法解決伺服器或硬碟壞掉的問題。
MapReduce,透過簡單的Mapper和Reducer的抽象提供一個程式設計模型,可以在一個由幾十臺上百臺的PC組成的不可靠叢集上併發地,分散式地處理大量的資料集,而把併發、分散式(如機器間通訊)和故障恢復等計算細節隱藏起來。而Mapper和Reducer的抽象,又是各種各樣的複雜資料處理都可以分解為的基本元素。尚學堂陳老師指出,複雜的資料處理可以分解為由多個Job(包含一個Mapper和一個Reducer)組成的有向無環圖(DAG),然後每個Mapper和Reducer放到Hadoop叢集上執行,就可以得出結果。
Spark在於運算速度快。Spark還可以執行批次處理,然而它真正擅長的是處理流工作負載、互動式查詢和機器學習。
相比MapReduce基於磁碟的批次處理引擎,Spark賴以成名之處是其資料實時處理功能。Spark與Hadoop及其模組相容。實際上,在Hadoop的專案頁面上,Spark就被列為是一個模組。Spark有自己的頁面,因為雖然它可以透過YARN(另一種資源協調者)在Hadoop叢集中執行,但是它也有一種獨立模式。它可以作為 Hadoop模組來執行,也可以作為獨立解決方案來執行。MapReduce和Spark的主要區別在於,MapReduce使用持久儲存,而Spark使用彈性分散式資料集(RDDS)。
回覆列表
個人覺得不會。因為兩者的側重點不同,使用場景不同,個人認為沒有替代之說。Spark更適合於迭代運算比較多的ML和DM運算。因為在Spark裡面,有RDD的概念。RDD可以cache到記憶體中,那麼每次對RDD資料集的操作之後的結果,都可以存放到記憶體中,下一個操作可以直接從記憶體中輸入,省去了MapReduce大量的磁碟IO操作。但是,我們也要看到spark的限制:記憶體。我認為Hadoop雖然費時,但是在OLAP等大規模資料的應用場景,還是受歡迎的。
目前Hadoop涵蓋了從資料收集、到分散式儲存,再到分散式計算的各個領域,在各領域都有自己獨特優勢。