這是小編的一個讀者喜提offer后在群里做的分享,文中隱藏了讀者的個人隱私資訊,小編這里把他的面經分享出來供大家學習,
群友們看到后都紛紛表示【我酸了,現在我就是個檸檬精系列】,


關于如何學習/準備面試的總結
首先說一說本人的情況
本人普通本科,非計算機專業(之前一直對這個耿耿于懷,后來想通了覺得60%從事軟體開發的都是非計算機專業,之后的面試直接說我是非計算機專業,這一塊的誠實很重要,
也沒有必要瞞著,因為公司看中的是你的開發能力,能不能幫公司解決問題),對于群里的大牛來說,看了之后肯定會笑話我,哈哈,不過我的能力就這么大,每年有進步就很開心,
怎么學習群主的帖子
群主基本每周都會對帖子有更新,我是一個比較細心的人,每天上班去公司要2個小時左右,然后在地鐵上的時間都會在看群主的帖子,一是為了拓展見識,二是為了夯實基礎知識,對于我公司開發專案有相似的帖子,會進行收藏,之后做好筆記,理解群主說這個技術堆疊的思路,為什么要這樣搞,而不是單單的對里邊的理論知識進行記憶,這一點很重要,特別是面試的時候能說出這些東西,都可以讓面試官耳目一新,
我記得特別深刻的是群主在kafak和spark那一塊的講解,kafka怎么實作實時性(pagecage頁快取,順序寫磁盤,零復制技術等等),面試官問到這一塊的時候,我都有說的很詳細,然后面試官都會跟我說:嗯,你的基礎能力很扎實,還有spark調優那一塊,這個是我的強項,我把自己掌握和實踐中用的方法用自己的語言總結了一部分(資料傾斜,記憶體溢位,開發調優,資源調優,shuffle調優等),每一個點都能夠自己總結出一個例子出來,說給面試官聽,之后面試官都會給出高度的評價,
注意事項
知識的學習要結合自己簡歷中的專案和技術架構,不能原封不動的抄襲;公司做的有哪些專案,那么安排上,再從群主的帖子里去找靈感,這一點很重要,你不能拿著沒有做過的專案來套這些東西,因為一個專案會牽涉到業務場景,專案背景以及實作中的很多細節,亂編的專案肯定有考慮不到的地方,有一些細節都會被問出來,結果讓面試官對你產生了懷疑,基于真實專案的技術架構,吸收帖子里邊的一些思想,加上自己的思考,這樣進步就會很快,
遇到的面試題
Java基礎
JVM優化和多執行緒必問,
數倉必問
mapreduce的底層原理(shuffle重點);hivesql怎么轉化為mapreduce;資料傾斜怎么處理(大表join大表,大小表join,引數調優等等);hive的優化;數倉分層細節,數倉建模;拉鏈表;緩慢變化維;星型模型和雪花模型區別;資料庫三范式;事實表的分類;具體場景寫sql;
Spark部分
spark的運行原理;spark資料傾斜;spark記憶體溢位;spark的調優;spark的rdd算子細節(map,mappartition,groupbykey,reducebykey等等很多,需要自己逐一的梳理);sparksql(sparksql怎么決議、dataframe、dateset);spark的記憶體模型;spark的shuffle原理,shuffle優化,
kafka部分
kafak負載均衡;kafka資料一致性;kafka的ack機制;kafka的exact once語意;kafka磁區策略;kafka磁區的目的等等,
zk部分
zk選舉機制,zk用到的演算法;zk的資料一致性;zk 節點宕機如何處理;負載均衡;zk一些介面,
hbase
讀寫原理;rowkey設計;熱點問題;資料版本;habse的優化,
elasticsearch
es的讀寫原理;es的倒排索引;es的優化(重點必問);場景下的es提問,
自己的感受
感覺越往高級的面,就會傾向于問你組件調優以及架構方面的知識:如分布式;CAP理論;資料一致性以及知識掌握的全面性,這些部分都是我需要學習的地方,不說了,再說就感覺自己的水平很low了,哈哈,
然后就是寫簡歷的時候不貪多,把每個專案的實作細節都給搞清楚,很容易就面過,基于此我基本每家單位的一面都能過,二面三面的時候一方面看知識的深度,另一方面靠自己的表達能力,最后就是感覺現在好多公司喜歡搞資料中臺,資料治理這一塊,這一塊我在我們公司搞過一點,感覺可能也是一個加分項,
最后弱弱的給小編打個廣告,后臺回復【知識星球】,可以加到圈子里來,未來一段時間都在持續更新面試題系列,
歡迎關注,《大資料成神之路》系列文章
歡迎關注,《大資料成神之路》系列文章
歡迎關注,《大資料成神之路》系列文章
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/255048.html
標籤:Java
