自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Spark和Hadoop的架構(gòu)區(qū)別解讀

大數(shù)據(jù) Hadoop Spark
總的來說,Spark采用更先進(jìn)的架構(gòu),使得靈活性、易用性、性能等方面都比Hadoop更有優(yōu)勢,有取代Hadoop的趨勢,但其穩(wěn)定性有待進(jìn)一步提高。我總結(jié),具體表現(xiàn)在如下幾個方面。

總的來說,Spark采用更先進(jìn)的架構(gòu),使得靈活性、易用性、性能等方面都比Hadoop更有優(yōu)勢,有取代Hadoop的趨勢,但其穩(wěn)定性有待進(jìn)一步提高。我總結(jié),具體表現(xiàn)在如下幾個方面。

Spark和Hadoop的架構(gòu)區(qū)別解讀

Q:Spark和Hadoop的架構(gòu)區(qū)別

A:

  • Hadoop:MapRedcue由Map和Reduce兩個階段,并通過shuffle將兩個階段連接起來的。但是套用MapReduce模型解決問題,不得不將問題分解為若干個有依賴關(guān)系的子問題,每個子問題對應(yīng)一個MapReduce作業(yè),最終所有這些作業(yè)形成一個DAG。
  • Spark:是通用的DAG框架,可以將多個有依賴關(guān)系的作業(yè)轉(zhuǎn)換為一個大的DAG。核心思想是將Map和Reduce兩個操作進(jìn)一步拆分為多個元操作,這些元操作可以靈活組合,產(chǎn)生新的操作,并經(jīng)過一些控制程序組裝后形成一個大的DAG作業(yè)。

Q:Spark和Hadoop的中間計算結(jié)果處理區(qū)別

A:

  • Hadoop:在DAG中,由于有多個MapReduce作業(yè)組成,每個作業(yè)都會從HDFS上讀取一次數(shù)據(jù)和寫一次數(shù)據(jù)(默認(rèn)寫三份),即使這些MapReduce作業(yè)產(chǎn)生的數(shù)據(jù)是中間數(shù)據(jù)也需要寫HDFS。這種表達(dá)作業(yè)依賴關(guān)系的方式比較低效,會浪費(fèi)大量不必要的磁盤和網(wǎng)絡(luò)IO,根本原因是作業(yè)之間產(chǎn)生的數(shù)據(jù)不是直接流動的,而是借助HDFS作為共享數(shù)據(jù)存儲系統(tǒng)。
  • Spark:在Spark中,使用內(nèi)存(內(nèi)存不夠使用本地磁盤)替代了使用HDFS存儲中間結(jié)果。對于迭代運(yùn)算效率更高。

Q:Spark和Hadoop的操作模型區(qū)別

A:

  • Hadoop:只提供了Map和Reduce兩種操作所有的作業(yè)都得轉(zhuǎn)換成Map和Reduce的操作。
  • Spark:提供很多種的數(shù)據(jù)集操作類型比如Transformations 包括map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues,sort,partionBy等多種操作類型,還提供actions操作包括Count,collect, reduce, lookup, save等多種。這些多種多樣的數(shù)據(jù)集操作類型,給開發(fā)上層應(yīng)用的用戶提供了方便。

Q:spark中的RDD是什么,有哪些特性?

A:

  • A list of partitions:一個分區(qū)列表,RDD中的數(shù)據(jù)都存儲在一個分區(qū)列表中
  • A function for computing each split:作用在每一個分區(qū)中的函數(shù)
  • A list of dependencies on other RDDs:一個RDD依賴于其他多個RDD,這個點(diǎn)很重要,RDD的容錯機(jī)制就是依據(jù)這個特性而來的
  • Optionally,a Partitioner for key-value RDDs(eg:to say that the RDD is hash-partitioned):可選的,針對于kv類型的RDD才有這個特性,作用是決定了數(shù)據(jù)的來源以及數(shù)據(jù)處理后的去向
  • 可選項,數(shù)據(jù)本地性,數(shù)據(jù)位置***

Q:概述一下spark中的常用算子區(qū)別(map,mapPartitions,foreach,foreachPatition)

A:map:用于遍歷RDD,將函數(shù)應(yīng)用于每一個元素,返回新的RDD(transformation算子)

foreach:用于遍歷RDD,將函數(shù)應(yīng)用于每一個元素,無返回值(action算子)

mapPatitions:用于遍歷操作RDD中的每一個分區(qū),返回生成一個新的RDD(transformation算子)

foreachPatition:用于遍歷操作RDD中的每一個分區(qū),無返回值(action算子)

總結(jié):一般使用mapPatitions和foreachPatition算子比map和foreach更加高效,推薦使用。

 

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2022-04-06 20:28:33

OpenShift邏輯架構(gòu)技術(shù)架構(gòu)

2017-03-22 20:21:16

Hadoop框架分布式

2023-10-27 13:59:30

Mybatis占位符

2012-07-02 14:39:59

架構(gòu)敏捷

2015-07-15 10:11:31

SparkHadoop

2016-02-26 10:20:17

HadoopSpark大數(shù)據(jù)項目

2017-02-10 09:00:03

HadoopSparkStorm

2012-07-11 17:21:23

HadoopHDFS

2016-01-25 10:48:15

大數(shù)據(jù)框架HadoopSpark

2021-12-14 09:56:51

HadoopSparkKafka

2010-09-06 16:27:06

CSSabsoluterelative

2017-11-27 14:12:34

大數(shù)據(jù)Hadoop數(shù)據(jù)分析

2017-03-06 09:40:39

OpenStack SHadoopSpark

2017-12-27 14:39:07

HadoopSpark大數(shù)據(jù)

2012-05-29 09:06:32

Hadoop文件格式

2019-04-22 15:24:24

HadoopSuffleMap端

2017-04-19 11:17:48

SparkHadoopMapReduce

2015-07-23 14:29:28

大數(shù)據(jù)sparkhadoop

2023-09-12 22:58:51

分布式架構(gòu)微服務(wù)

2017-02-27 16:42:23

Spark識體系
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號