1 回答

TA貢獻1799條經驗 獲得超6個贊
展開全部
Hadoop這項大數據處理技術大概已有十年歷史,而且被看做是首選的大數據集合處理的解決方案。MapReduce是一路計算的優秀解決方案,不過對于需要多路計算和算法的用例來說,并非十分高效。數據處理流程中的每一步都需要一個Map階段和一個Reduce階段,而且如果要利用這一解決方案,需要將所有用例都轉換成MapReduce模式。
在下一步開始之前,上一步的作業輸出數據必須要存儲到分布式文件系統中。因此,復制和磁盤存儲會導致這種方式速度變慢。另外Hadoop解決方案中通常會包含難以安裝和管理的集群。而且為了處理不同的大數據用例,還需要集成多種不同的工具(如用于機器學習的Mahout和流數據處理的Storm)。
如果想要完成比較復雜的工作,就必須將一系列的MapReduce作業串聯起來然后順序執行這些作業。每一個作業都是高時延的,而且只有在前一個作業完成之后下一個作業才能開始啟動。
而Spark則允許程序開發者使用有向無環圖(DAG)開發復雜的多步數據管道。而且還支持跨有向無環圖的內存數據共享,以便不同的作業可以共同處理同一個數據。
Spark運行在現有的Hadoop分布式文件系統基礎之上(HDFS)提供額外的增強功能。它支持將Spark應用部署到現存的Hadoop v1集群(with SIMR – Spark-Inside-MapReduce)或Hadoop v2 YARN集群甚至是Apache Mesos之中。
我們應該將Spark看作是Hadoop MapReduce的一個替代品而不是Hadoop的替代品。其意圖并非是替代Hadoop,而是為了提供一個管理不同的大數據用例和需求的全面且統一的解決方案。
- 1 回答
- 0 關注
- 860 瀏覽
添加回答
舉報