人工智能AI面試題-2.10 Hadoop和Spark的都是并行計算,那么他們有
2.10 Hadoop和Spark的都是并行計算,那么他們有什么相同和區(qū)別 1. 相同 ?? ??- 兩者都采用MapReduce模型進行并行計算。 ??- Hadoop的一個作業(yè)稱為Job,Job里面分為Map Task和Reduce Task,每個Task都在自己的進程中運行。當Task結(jié)束時,進程也會結(jié)束。 2. 區(qū)別 ?? ??- Hadoop的Job只有Map和Reduce操作,表達能力相對較弱,而且在MapReduce過程中會重復地讀寫HDFS,導致大量的IO操作。多個Job需要自己管理關(guān)系。 ??- Spark用戶提交的任務稱為Application,一個Application對應一個SparkContext。在一個Application中存在多個Job。每次觸發(fā)一個Action操作都會產(chǎn)生一個Job。這些Job可以并行或串行執(zhí)行。每個Job中有多個Stage,Stage是通過DAGScheduler根據(jù)RDD之間的依賴關(guān)系劃分的。每個Stage里面有多個Task,組成Task Set由TaskScheduler分發(fā)到各個Executor中執(zhí)行。Executor的生命周期與Application一樣,即使沒有Job運行也是存在的,所以Task可以快速啟動并讀取內(nèi)存進行計算。 ??- Spark的迭代計算都是在內(nèi)存中進行的,API中提供了大量的RDD操作,如join、groupBy等。而且通過DAG圖可以實現(xiàn)良好的容錯。 ?? 總結(jié):Hadoop和Spark都是強大的并行計算工具,但Spark在內(nèi)存計算、容錯性和操作表達能力方面具有明顯優(yōu)勢。它更適合處理迭代計算和復雜的數(shù)據(jù)操作。