Spark面試常見問題


根據個人面試經歷總結

 

1、簡單說一下hadoop和spark的shuffle相同和差異?

聯系:

 Apache Spark 的 Shuffle 過程與 Apache Hadoop 的 Shuffle 過程有着諸多類似,一些概念可直接套用,例如,Shuffle 過程中,提供數據的一端,被稱作 Map 端,Map 端每個生成數據的任務稱為 Mapper,對應的,接收數據的一端,被稱作 Reduce 端,Reduce 端每個拉取數據的任務稱為 Reducer,Shuffle 過程本質上都是將 Map 端獲得的數據使用分區器進行划分,並將數據發送給對應的 Reducer 的過程。

主要的區別:

一個落盤,一個不落盤,spark就是為了解決mr落盤導致效率低下的問題而產生的,原理還是mr的原理,只是shuffle放在內存中計算了,所以效率提高很多。


2、Spark有哪些算子,列舉幾個你熟悉的?

轉換(transformation)算子 :常見的有map 、flatMap、filter、groupByKey、reduceByKey、union

flatMap與map區別在於map為“映射”,而flatMap“先映射,后扁平化”,map對每一次(func)都產生一個元素,返回一個對象,而flatMap多一步就是將所有對象合並為一個對象

行動(action)算子:reduce、collect、count、foreach

3、groupByKey與reduceByKey的區別

reduceByKey將結果發送給reducer之前在本地進行merge,這樣數據量會大幅度減小,從而減小傳輸,保證reduce端能夠更快的進行結果計算。所以reduceByKey更適合作用在較大的數據集上


4、spark中的RDD是什么,有哪些特性?
RDD彈性分布式數據集、分區記錄集合;特性有:只讀、分布式、彈性、基於內存

5、談談spark中的寬窄依賴? spark rdd 如何區分寬依賴和窄依賴?

6、spark中的數據傾斜的現象、原因、后果?


7、如何解決spark中的數據傾斜問題?

 1.首先從源頭選擇可以split的數據源,從源頭避免傾斜

  2.shuffle過程中,增加並行度,減少shuffle 在map-side進行數據合並,避免reduce fetch數據傾斜

  3.sample采樣將傾斜的數據,特殊處理,這個方法可以適用於所有的數據傾斜問題

通過sample采樣,得到傾斜的key,然后進行特殊處理,將傾斜的key通過加鹽的方式,增大並行處理,之后將結果再合並,進而減少單個task的壓力

  4.另外,就是我們盡量使用spark-sql,spark-sql里面優化器提供很多基本CRO和CBO的優化策略,不僅幫我們從源頭幫我們去除無關的數據減少計算數據量,其次在計算過程中會根據我們的table 的數據量,自動幫我們計算合適task partition數量,和選擇合適join策略,從而提升計算性能,也避免shuffle 數據傾斜

8、spark on yarn中executor如何管理內存分配?

Spark的Excutor的Container內存有兩大部分組成:堆外內存和Excutor內存。
其中
堆外內存
由spark.yarn.executor.memoryOverhead參數設置。  主要用於JVM自身的開銷。默認:MAX(executorMemory*0.10,384MB)
這里384 的含義為,JVM自身開銷,最小的需求是384MB
Excutor內存
由spark.executor.memory參數設置,分為兩部分。
Execution:shuffle、排序、聚合等用於計算的內存
Storage:用於集群中緩沖和傳播內部數據的內存(cache、廣播變量)

具體見這篇文章https://blog.csdn.net/zhuiqiuuuu/article/details/86539385
9、Spark driver的功能是什么?

driver驅動器

一個Spark作業運行時包括一個Driver進程,也是作業的主進程,具有main函數,並且有SparkContext的實例,是程序的人口點;

功能:負責向集群申請資源,向master注冊信息,負責了作業的調度,負責作業的解析、生成Stage並調度Task到Executor(執行器)上。包括DAGScheduler,TaskScheduler。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM