Hadoop:布批處理計算強調數據挖掘和分析的批處理。
Spark:基於內存計算的源集群計算系統的目的是讓數據分析更快。Spark,壹個類似Hadoop的源集群計算環境,兩者有壹些相似之處,使得Spark的壹些工作負載面表現更好。換句話說,Spark除了提供交互式查詢之外,還使memory cloth數據集能夠優化叠代工作負載。
Spark Scala語言實現了以Scala作為其應用框架,Hadoop和Spark Scala可以緊密結合各自的Scala圖像,操縱集合圖像,輕松操縱布局數據集。
雖然創建Spark是為了支持cloth數據集的叠代操作,但是Hadoop補充了Hadoop文件系統並行運行。第三個集群框架Mesos支持行。Spark由加州伯克利的AMP Lab(算法、機器和人實驗室)開發,具有建設性和低延遲的數據分析應用程序。
雖然Spark和Hadoop的相似性提供了壹個新的集群計算框架,但實際上有所不同,首先,Spark集群計算設計了壹種特定類型的工作負載,即壹些並行操作重用工作數據集(相對於機器學習)來優化壹些類型的工作負載。Spark引入了內存集群計算的概念,內存集群計算數據集緩存縮短了訪問延遲。
數據處理面相信hadoop已經很熟悉了。基於Googlemap/reduce,Hadoop的sender提供了map和reduce原語,使得並行批處理程序不簡單也不美觀。Spark提供數據集操作類型,比如Hadoop提供MapReduce。兩個操作比貼圖,濾鏡,平貼圖,采樣要好。Group by key、reduce by key、union、join、co group、map values、sort、partionby等。有些操作被稱為轉換並提供計數、收集、歸約、查找、保存等動作,有些數據集操作類型為用戶提供了處理節點間便捷的通信模型,然後像Hadoop的純數據shuffle模型壹樣,用戶命名物化控制接合區,說編程模型比Hadoop更巧妙。
2.Spark容錯面是否優於其工具?
Spark的論文“彈性分布式數據集:內存集群計算的容錯抽象”沒有考慮容錯,而是計算了反轉的布料數據集,並做了兩種形式的檢查點數據記錄。他更新看起來是Spark用戶,雖然看起來是為了節省存儲空間,因為數據處理模型類似於DAG操作過程,因為圖中的壹個節點是錯誤的,因為血統鏈依賴於復雜的性能,所以所有計算節點重新計算成本,比如說,存儲數據,保存更新,做壹個檢查點。由用戶決定,球卻踢給了用戶。在我看來,用戶是根據業務類型來衡量存儲數據的IO磁盤空間的。成本重新計算成本選擇成本是壹個比持續連接或建立檢查點更好的策略。Spark記得產生壹些數據集的節點現在有故障。Spark根據存儲的信息重構數據集,並將其節點錯配幫助重建。
3.Spark在數據處理方面的效率有什麽特點?
Spark提供高性能的數據處理能力,讓用戶體驗到快速的反饋。另壹個應用是數據挖掘。Spark填充內存進行緩存。DAG消除了必要的步驟。更適合叠代運算。叠代收斂適合用Spark並行化我們的操作。用Spark實現R語言,會減少用戶的數據挖掘作業本。
與Twitter Storm框架相比,Spark的分發數據處理模型有趣而獨特。Storm基本上就像把它放到壹個獨立的事務管道裏,但是它的事務布局是相反的。Spark使用該模型在短時間內(我假設為5秒)收集事務。RDD使用Spark應用程序分組處理收集的數據。作者聲稱這種模型速度慢,節點失效情況更穩定,5秒的間隔足夠幾個應用使用了。
摘要
《Hadoop權威指南》、《hbase權威指南》、《hive權威指南》、《規模分布式存儲系統》、《zoopkeeper》、《數據互聯網規模數據挖掘與分布式處理》等幾本書與補充不同,完全可以看完這本書。