前言
說spark之前,先提一下MapReduce:
最本質的兩個過程就是Map和Reduce
- Map的應用在於我們需要數據一對一的元素的映射轉換,比如說進行截取,進行過濾,或者任何的轉換操作,這些一對一的元素轉換就稱作是Map;
- Reduce主要就是元素的聚合,就是多個元素對一個元素的聚合,比如求Sum等,這就是Reduce。
Mapreduce是Hadoop1.0的核心,Spark出現慢慢替代Mapreduce。
爲什麼Mapreduce還在被使用呢?
因爲有很多現有的應用還依賴於它,它不是一個獨立的存在,已經成爲其他生態不可替代的部分,比如pig,hive等。
儘管MapReduce極大的簡化了大數據分析,但是隨着大數據需求和使用模式的擴大,用戶的需求也越來越多:
- 1.更復雜的多重處理需求(比如迭代計算, ML, Graph);
- 2.低延遲的交互式查詢需求(比如ad-hoc query)