大數據開發崗面試複習30天沖刺 - 日積月累,每日五題【Day23】——Spark10

manor的大數據奮鬥之路 2021-08-15 21:36:51 阅读数:327

本文一共[544]字,预计阅读时长:1分钟~
每日 day23 day spark10 spark

前言

大家好,我是程序員manor。作為一名大數據專業學生、愛好者,深知面試重要性,很多學生已經進入暑假模式,暑假也不能懈怠,正值金九銀十的秋招
接下來我准備用30天時間,基於大數據開發崗面試中的高頻面試題,以每日5題的形式,帶你過一遍常見面試題及恰如其分的解答。

相信只要一路走來,日積月累,我們終會在最高處見。
以古人的話共勉:道阻且長,行則將至;行而不輟,未來可期!

在這裏插入圖片描述

本欄目大數據開發崗高頻面試題主要出自大數據技術專欄的各個小專欄,由於個別筆記上傳太早,排版雜亂,後面會進行原文美化、增加。



不要往下滑了,
默默想5min,
看看這5道面試題你都會嗎?

面試題 01、union操作是產生寬依賴還是窄依賴?
面試題02、窄依賴父RDD的partition和子RDD的parition是不是都是一對一的關系?
面試題 03、Hadoop中,Mapreduce操作的mapper和reducer階段相當於spark中的哪幾個算子?
面試題04、Spark中的HashShufle的有哪些不足?
面試題05、conslidate是如何優化Hash shuffle時在map端產生的小文件?

在這裏插入圖片描述

在這裏插入圖片描述

以下答案僅供參考:

面試題 01、union操作是產生寬依賴還是窄依賴?

產生窄依賴。

面試題02、窄依賴父RDD的partition和子RDD的parition是不是都是一對一的關系?

不一定,除了一對一的窄依賴,還包含一對固定個數的窄依賴(就是對父RDD的依賴的Partition的數量不會隨著RDD數量規模的改變而改變), 比如join操作的每個partiion僅僅和已知的partition進行join,這個join操作是窄依賴,依賴固定數量的父rdd,因為是確定的partition關系。

面試題03、Hadoop中,Mapreduce操作的mapper和reducer階段相當於spark中的哪幾個算子?

相當於spark中的map算子和reduceByKey算子,當然還是有點區別的,MR會自動進行排序的,spark要看你用的是什麼partitioner。

面試題04、Spark中的HashShufle的有哪些不足?

1)shuffle產生海量的小文件在磁盤上,此時會產生大量耗時的、低效的IO操作; 2)容易導致內存不够用,由於內存需要保存海量的文件操作句柄和臨時緩存信息,如果數據處理規模比較大的話,容易出現OOM; 3)容易出現數據傾斜,導致OOM。

面試題05、conslidate是如何優化Hash shuffle時在map端產生的小文件?

1)conslidate為了解决Hash Shuffle同時打開過多文件導致Writer handler內存使用過大以及產生過多文件導致大量的隨機讀寫帶來的低效磁盤IO;
2)conslidate根據CPU的個數來决定每個task shuffle map端產生多少個文件,假設原來有10個task,100個reduce,每個CPU有10個CPU,那麼 使用hash shuffle會產生10100=1000個文件,conslidate產生1010=100個文件 注意:conslidate部分减少了文件和文件句柄,並行讀很高的情况下(task很多時)還是會很多文件。

總結

今天我們複習了面試中常考的Spark相關的五個問題,你做到心中有數了麼?
其實做這個專欄我也有私心,就是希望借助每天寫一篇面試題,督促自己學習,以免在面試期間尷尬!平時不流汗,面試多流淚!
對了,如果你的朋友也在准備面試,請將這個系列扔給他,
好了,今天就到這裏,學廢了的同學,記得在評論區留言:打卡。給同學們以激勵。
在這裏插入圖片描述

版权声明:本文为[manor的大數據奮鬥之路]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/08/20210815213646732b.html