天天看點

spark面試該準備點啥

本文轉載自公衆号: Spark學習技巧

作者:浪尖

原文連結:

https://mp.weixin.qq.com/s/xcQOL2HyNB8Ro7QChu6Ngw

最近很多球友都說在準備面試,不知道準備點啥,尤其是spark,實際上浪尖分享的内容真的都掌握了,應對一般面試絕對沒問題,但是遺憾的事情是很多人都是處于不會主動搜集資料,主動梳理知識,主動記憶整理知識,而是伸手要糧的境地。浪尖覺得這個是阻止你成長的罪魁禍手。前天跟朋友聚餐就說道這種情況,不努力,不加班給自己喂糧的,沒有足夠量和時間積累的人很難在一個領域裡有所建樹。

主動學習,保持激情,不斷提高~

言歸正傳,大部分面試者被面試的spark問題估計都會集中于spark core,spark streaming和spark sql,至于mllib和graphx這些估計都是了解項,當然也要逐漸去學習structured streaming。是以今天浪尖就幫助大家梳理一下spark的主要知識點吧~

1. spark的runtime

這個主要是standalone模式下的master和worker,executor,driver,再加上yarn模式下的resourcemanager和nodemanager。要了解一個spark應用送出的過程,也即是driver和executor在叢集管理器内部啟動的過程,然後就是rpc過程,各個角色的作用。

高手的問題就是如何給兩者配置設定合适記憶體,然後executor執行task傾斜的表現及如何解決。這些都在星球裡分享過了。然後如何對executor的存活挂掉、新增進行監控告警。executor動态配置設定表現及帶來的問題。

再進階一點就是driver和executor的類加載器及加載類的原理及過程,當然包括rpc,依賴傳輸,依賴更新,task排程等。

2.spark core

spark core顧名思義就是spark的核心内容,主要是rdd的五大特性及操作算子特點介紹。

DAG的生成,劃分,task的排程執行。

資料本地性原理及如何利用和會存在哪些隐患。這也在公衆号發過文章和視訊了。

reducebykey,groupbykey的差別等等類似算子對比,如何高效使用mappartition,然後foreachPartition與foreach之間的差別及底層實作原理,這些星球裡➕公衆号都發過了。

寬依賴,窄依賴等老生常談的不多說了...基礎都不去了解記憶的人面試不過很正常。

來點猛料,廣播變量的原理及演變過程,使用場景,使用廣播變量一定劃算嗎?大變量咋辦呢?Spark sreaming定期更新廣播變量的實作。

累加器的原理及應用場景,累加器使用有陷阱麼?

序列化,反序列化,閉包,垃圾回收機制(過期rdd的回收,cache的回收,shuffle資料回收等)。這個星球裡打過了~

checkpoint如何在spark core應用呢?何種場景适合?源碼系列教程。

并行度相關配置,這個星球裡也反複強調了,合理設定可以大幅度提高性能。

害怕了嗎,還是就此打住吧,太多了~

3.spark streaming

spark streaming核心原理大家都知道是微批處理。

基于receiver和direct api兩種模式的原理,最好讀懂源碼。

主要是跟Kafka 結合的兩種模式的差別。

direct這種模式如何實作僅一次處理。

checkpoint的使用及問題。

如何進行狀态管理,upstatebykey,redis,hbase,alluxio作為狀态管理儲存設備的時候優缺點,然後就是故障恢複會引起的問題及如何避免等等吧。

合理設定批處理時間,為啥批處理時間不能太大,也不能太小,task傾斜,資料傾斜如何解決。

記憶體申請,kafka分區設定的依據是啥?

并行度問題,這個也是浪尖反複強調的,徹底了解對spark任務調優幫助很大。

blockrdd和kafkardd的底層差別。

與spark sql和hivecontext結合使用。

廣播變量的使用及釋放機制等。

動态分區發現和topic發現機制。

executor存活監控,task執行情況監控,未處理隊列積累的健康告警(非常重要)等價于對lagsize的監控告警。

小檔案問題,星球裡文章很詳細。根源上避免才是王道。順便提一句:為啥namenode那麼怕小檔案呢?

作為7*24小時的應用程式,如何進行監控告警及故障自動恢複~

4.spark sql

在數倉的領域,實時處理都用它,而且structured streaming也逐漸依賴于sql引擎了。

常見算子的使用及了解,并行度問題,大小表join,如何廣播小表。

join,group by等資料傾斜如何發現及處理方法,這個浪尖還專門錄制過視訊,星球裡球友應該都知道,不知道回去翻看一下。

常見的存儲格式,parquet,txt,json,orc對比及對性能的影響。

調優大部分也是針對并行度,檔案大小,資料傾斜,task傾斜,記憶體和cpu合理設定等。

5.structured streaming

動态表,增量sql引擎,僅一次處理,維表join等非常好用,watermark,還有就是繁雜的join 機制。

當然限制還是很多的,期待後續版本。

spark streaming在spark 2.4的時候都沒更新了,後面就主推sql引擎相關内容了,還是值得期待的。

不過話雖這麼說,我覺得flink也相對好用,就是可能bug多些,新版本好點。

阿裡巴巴開源大資料技術團隊成立Apache Spark中國技術社群,定期推送精彩案例,技術專家直播,問答區近萬人Spark技術同學線上提問答疑,隻為營造純粹的Spark氛圍,歡迎釘釘掃碼加入!

spark面試該準備點啥

對開源大資料和感興趣的同學可以加小編微信(下圖二維碼,備注“進群”)進入技術交流微信群。Apache

spark面試該準備點啥

Spark技術交流社群公衆号,微信掃一掃關注

spark面試該準備點啥

繼續閱讀