學習hadoop已經有很長一段時間了,好像是二三月份的時候朋友給了一個國產Hadoop發行版下載地址,由於仍是在學習階段就下載了一個三節點的學習版玩一下。在研究、學習hadoop的朋友能夠去找一下看看(發行版 大快DKhadoop,去大快的網站上應該能夠下載到的。)安全
在學習hadoop的時候查詢一些資料的時候常常會看到有比較hadoop和spark的,對於初學者來講不免會有點搞不清楚這兩者到底有什麼大的區別。我記得剛開始接觸大數據這方面內容的時候,也就這個問題查閱了一些資料,在《FreeRCH大數據一體化開發框架》的這篇說明文檔中有就Hadoop和spark的區別進行了簡單的說明,但我以爲解釋的也不是特別詳細。我把我的認爲解釋的比較好的一個觀點分享給你們:框架
它主要是從四個方面對Hadoop和spark進行了對比分析:機器學習
一、目的:首先須要明確一點,hadoophe spark 這兩者都是大數據框架,即使如此兩者各自存在的目的是不一樣的。Hadoop是一個分佈式的數據基礎設施,它是將龐大的數據集分派到由若干臺計算機組成的集羣中的多個節點進行存儲。Spark是一個專門用來對那些分佈式存儲的大數據進行處理的工具,spark自己並不會進行分佈式數據的存儲。分佈式
二、二者的部署:Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS爲海量的數據提供了存儲,則MapReduce爲海量的數據提供了計算。因此使用Hadoop則能夠拋開spark,而直接使用Hadoop自身的mapreduce完成數據的處理。Spark是不提供文件管理系統的,但也不是隻能依附在Hadoop上,它一樣能夠選擇其餘的基於雲的數據系統平臺,但spark默認的通常選擇的仍是hadoop。工具
三、數據處理速度:Spark,擁有Hadoop、 MapReduce所具備能更好地適用於數據挖掘與機器學習等須要迭代的的優勢;但不一樣於MapReduce的是Job中間輸出結果能夠保存在內存中,從而再也不須要讀寫HDFS,oop
Spark 是一種與 hadoop 類似的開源集羣計算環境,可是二者之間還存在一些不一樣之處,這些有用的不一樣之處使 Spark 在某些工做負載方面表現得更加優越,換句話說,Spark 啓用了內存分佈數據集,除了可以提供交互式查詢外,它還能夠優化迭代工做負載。學習
四、數據安全恢復:Hadoop每次處理的後的數據是寫入到磁盤上,因此其天生就能頗有彈性的對系統錯誤進行處理;spark的數據對象存儲在分佈於數據集羣中的叫作彈性分佈式數據集中,這些數據對象既能夠放在內存,也能夠放在磁盤,因此spark一樣能夠完成數據的安全恢復。大數據