如何掌握Spark和Hadoop的架構
Spark和Hadoop的架構區別是什麼,什麼是spark,什麼是Hadoop,怎麼樣學習這些知識點?
總的來說,Spark採用更先進的架構,使得靈活性、易用性、效能等方面都比Hadoop更有優勢,有取代Hadoop的趨勢,但其穩定性有待進一步提高。我總結,具體表現在如下幾個方面。
Spark和Hadoop的架構有什麼不同之處
Q:Spark和Hadoop的架構區別
A:
Hadoop: MapRedcue由Map和Reduce兩個階段,並透過shuffle將兩個階段連線起來的。但是套用MapReduce模型解決問題,不得不將問題分解為若干個有依賴關係的子問題,每個子問題對應一個MapReduce作業,最終所有這些作業形成一個DAG。
Spark: 是通用的DAG框架,可以將多個有依賴關係的作業轉換為一個大的DAG。核心思想是將Map和Reduce兩個操作進一步拆分為多個元操作,這些元操作可以靈活組合,產生新的操作,並經過一些控制程式組裝後形成一個大的DAG作業。
Q:Spark和Hadoop的中間計算結果處理區別
A:
Hadoop: 在DAG中,由於有多個MapReduce作業組成,每個作業都會從HDFS上讀取一次資料和寫一次資料(預設寫三份),即使這些MapReduce作業產生的資料是中間資料也需要寫HDFS。這種表達作業依賴關係的方式比較低效,會浪費大量不必要的磁碟和網路IO,根本原因是作業之間產生的資料不是直接流動的,而是藉助HDFS作為共享資料儲存系統。
Spark: 在Spark中,使用記憶體(記憶體不夠使用本地磁碟)替代了使用HDFS儲存中間結果。對於迭代運算效率更高。
Q:Spark和Hadoop的操作模型區別
A:
Hadoop: 只提供了Map和Reduce兩種操作所有的作業都得轉換成Map和Reduce的操作。
Spark: 提供很多種的資料集操作型別比如Transformations 包括map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues,sort,partionBy等多種操作型別,還提供actions操作包括Count,collect, reduce, lookup, save等多種。這些多種多樣的資料集操作型別,給開發上層應用的使用者提供了方便。
Q:spark中的RDD是什麼,有哪些特性?
A:
A list of partitions:一個分割槽列表,RDD中的資料都儲存在一個分割槽列表中
A function for computing each split:作用在每一個分割槽中的函式
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才有這個特性,作用是決定了資料的來源以及資料處理後的去向
可選項,資料本地性,資料位置最優
Q:概述一下spark中的常用運算元區別(map,mapPartitions,foreach,foreachPatition)
A: map:用於遍歷RDD,將函式應用於每一個元素,返回新的RDD(transformation運算元)
foreach: 用於遍歷RDD,將函式應用於每一個元素,無返回值(action運算元)
mapPatitions: 用於遍歷操作RDD中的每一個分割槽,返回生成一個新的RDD(transformation運算元)
foreachPatition: 用於遍歷操作RDD中的每一個分割槽,無返回值(action運算元)
總結: 一般使用mapPatitions和foreachPatition運算元比map和foreach更加高效,推薦使用。如果你想要學好程式設計技能,請留意內蒙達內官網,學習技能快,我們只選對的機構!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940009/viewspace-2650824/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Q:Spark和Hadoop的架構區別SparkHadoop架構
- spark基礎之spark sql執行原理和架構SparkSQL架構
- 大資料架構師必讀:常見的七種Hadoop和Spark專案案例大資料架構HadoopSpark
- hadoop和spark的區別HadoopSpark
- Hadoop的架構模型Hadoop架構模型
- Spark資料收藏--------Spark執行架構Spark架構
- Hadoop YARN 架構HadoopYarn架構
- 一文讀懂Hadoop、HBase、Hive、Spark分散式系統架構HadoopHiveSpark分散式架構
- 帶有Apache Spark的Lambda架構ApacheSpark架構
- React專案架構,掌握前端架構師的核心本領React架構前端
- Hadoop的HDFS架構入門Hadoop架構
- Hadoop-Yarn架構HadoopYarn架構
- 我的架構夢:(五十九) Apache Hadoop 架構與原理架構ApacheHadoop
- 大資料架構之:Spark大資料架構Spark
- 架構師之路:一個架構師需要掌握的知識技能架構
- Kappa架構取代Hadoop的Lambda架構成為主流 - WaehnerAPP架構Hadoop
- 7種最常見的Hadoop和Spark專案HadoopSpark
- Hadoop架構已凋謝?!Hadoop架構
- Spark 和 Hadoop 是朋友不是敵人SparkHadoop
- Hadoop(一)Hadoop核心架構與安裝Hadoop架構
- 一行Spark程式碼的誕生記(深度剖析Spark架構)Spark架構
- [大資料] Spark架構詳解大資料Spark架構
- 系統設計:使用Scala、Spark和Hadoop構建推薦系統SparkHadoop
- EasyMR 安全架構揭秘:如何管理 Hadoop 資料安全架構Hadoop
- 如何定義和建立架構架構
- Spark在Hadoop叢集上的配置(spark-1.1.0-bin-hadoop2.4)SparkHadoop
- Spark RDD在Spark中的地位和作用如何?Spark
- Hadoop架構的初略總結(1)Hadoop架構
- Hadoop架構的初略總結(2)Hadoop架構
- Hadoop學習筆記(1):概念和整體架構Hadoop筆記架構
- 常見的七種Hadoop和Spark專案案例HadoopSpark
- HDFS架構指南(分散式系統Hadoop的檔案系統架構)架構分散式Hadoop
- 談談Hadoop MapReduce和Spark MR實現HadoopSpark
- Hadoop與Spark的比較HadoopSpark
- hadoop:spark-project專案的hadoop配置HadoopSparkProject
- ==[圖]Spark系列(四)整體架構分析Spark架構
- 深入理解spark之架構與原理Spark架構
- Cassandra+Akka+Spark分散式機器學習架構Spark分散式機器學習架構