HDFS是Hadoop的分散式文件系統,現在我們已經把那些超大文件劃分成數據塊,做了備份並且存儲在集群中的節點上了,整個集群中有的機器扮演著管理者,是namenode的角色,是客戶端訪問Hadoop平台的入口,也負責維護HDFS的高可用性和容錯性。而有些機器則是工作者,是datanode的角色,負責存儲數據塊,向namenode上報自己都存儲了哪些數據塊。

有了分散式存儲的文件系統,分散式計算也是數據挖掘,大數據上的必備神器。針對不同的需求出現了下面幾種分散式計算框架。

MR(Map-Reduce)主要負責離線計算,一般處理的數據量特別大,對實時性要求不高,不要求很快就會計算出結果,MR的輸入就是HDFS文件系統中的數據塊。

優點:

大規模處理數據,隱藏細節,能夠自動並行化,負載均衡和容錯機制。

伸縮性好,可以增加集群中的機器,對MR的計算影響很小。

缺點:

實時性差,響應緩慢,不能快速得出計算結果,延遲大。

Storm一種流式分散式計算框架,用於在實時分析、在線機器學習、持續計算、分散式遠程調用和ETL等領域,主要針對的是Hadoop延遲大,響應緩慢,運維複雜而提出的分散式計算框架。

489034603

優點:

實時性高,延遲低,並且和MR一樣具備分散式,可擴展,容錯性高等優點。

缺點:

數據入口的設置比較困難,在考慮如何在流中保存狀態,還需要考慮如何將大數據放到分散式平台上去跑,Storm還不是一個完整的解決方案。

Spark基於內存的分散式計算框架,能夠快速得到結果。它將中間數據放到內存中,迭代效率更高,反覆操作的次數越多,並且讀取的數據量越大,那麼因為它把中間結果放到了內存中,迭代起來更快,計算效率越高。

489034603

優點:

Spark最大的優點在於速度,Spark將很多操作都保存在內存中,在高級數據處理上要比Hadoop表現優異。

缺點:

目前還沒有發現Spark的缺點。

雖然Hadoop主要以MR為分散式計算框架,並且有了升級版的MR--Yarn,但現在Spark已經和Hadoop進行了結合,Spark可以直接讀寫Hadoop的分散式文件系統HDFS,在數據倉庫上Spark也借用了Hive,基本上已經實現了兼容。

Map-Reduce中的Map為映射,而Reduce則是針對Map處理後的結果進行化簡。這裡涉及到Map-Reduce的一個問題:Map-Reduce是如何解決數據負載和數據均衡問題的?先給大家放張圖,下篇文章將從Map-Reduce的工作原理上來闡述這個問題。


推薦閱讀:
相关文章