總的來說,Spark采用更先進的架構,使得靈活性、易用性、性能等方面都比Hadoop更有優(yōu)勢,有取代Hadoop的趨勢,但其穩(wěn)定性有待進一步提高。我總結,具體表現(xiàn)在如下幾個方面。
Q:Spark和Hadoop的架構區(qū)別
A:
- Hadoop:MapRedcue由Map和Reduce兩個階段,并通過shuffle將兩個階段連接起來的。但是套用MapReduce模型解決問題,不得不將問題分解為若干個有依賴關系的子問題,每個子問題對應一個MapReduce作業(yè),最終所有這些作業(yè)形成一個DAG。
- Spark:是通用的DAG框架,可以將多個有依賴關系的作業(yè)轉換為一個大的DAG。核心思想是將Map和Reduce兩個操作進一步拆分為多個元操作,這些元操作可以靈活組合,產生新的操作,并經過一些控制程序組裝后形成一個大的DAG作業(yè)。
Q:Spark和Hadoop的中間計算結果處理區(qū)別
A:
- Hadoop:在DAG中,由于有多個MapReduce作業(yè)組成,每個作業(yè)都會從HDFS上讀取一次數(shù)據和寫一次數(shù)據(默認寫三份),即使這些MapReduce作業(yè)產生的數(shù)據是中間數(shù)據也需要寫HDFS。這種表達作業(yè)依賴關系的方式比較低效,會浪費大量不必要的磁盤和網絡IO,根本原因是作業(yè)之間產生的數(shù)據不是直接流動的,而是借助HDFS作為共享數(shù)據存儲系統(tǒng)。
- Spark:在Spark中,使用內存(內存不夠使用本地磁盤)替代了使用HDFS存儲中間結果。對于迭代運算效率更高。
Q:Spark和Hadoop的操作模型區(qū)別
A:
- Hadoop:只提供了Map和Reduce兩種操作所有的作業(yè)都得轉換成Map和Reduce的操作。
- Spark:提供很多種的數(shù)據集操作類型比如Transformations 包括map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues,sort,partionBy等多種操作類型,還提供actions操作包括Count,collect, reduce, lookup, save等多種。這些多種多樣的數(shù)據集操作類型,給開發(fā)上層應用的用戶提供了方便。
Q:spark中的RDD是什么,有哪些特性?
A:
- A list of partitions:一個分區(qū)列表,RDD中的數(shù)據都存儲在一個分區(qū)列表中
- A function for computing each split:作用在每一個分區(qū)中的函數(shù)
- A list of dependencies on other RDDs:一個RDD依賴于其他多個RDD,這個點很重要,RDD的容錯機制就是依據這個特性而來的
- Optionally,a Partitioner for key-value RDDs(eg:to say that the RDD is hash-partitioned):可選的,針對于kv類型的RDD才有這個特性,作用是決定了數(shù)據的來源以及數(shù)據處理后的去向
- 可選項,數(shù)據本地性,數(shù)據位置最優(yōu)
Q:概述一下spark中的常用算子區(qū)別(map,mapPartitions,foreach,foreachPatition)
A:map:用于遍歷RDD,將函數(shù)應用于每一個元素,返回新的RDD(transformation算子)
foreach:用于遍歷RDD,將函數(shù)應用于每一個元素,無返回值(action算子)
mapPatitions:用于遍歷操作RDD中的每一個分區(qū),返回生成一個新的RDD(transformation算子)
foreachPatition:用于遍歷操作RDD中的每一個分區(qū),無返回值(action算子)
總結:一般使用mapPatitions和foreachPatition算子比map和foreach更加高效,推薦使用。
當前標題:Spark和Hadoop的架構區(qū)別解讀
分享網址:http://m.newbst.com/news46/98896.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供做網站、網站改版、Google、用戶體驗、自適應網站、網站維護
廣告
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創(chuàng)新互聯(lián)