簡(jiǎn)介:我本碩都是雙非計(jì)算機(jī)專業(yè),研二開始學(xué)習(xí)大數(shù)據(jù)開發(fā)的相關(guān)知識(shí),從找實(shí)習(xí)到秋招,投遞過(guò)100+公司,拿到過(guò)10+的offer,包括滴滴、字節(jié)、螞蟻、攜程、蔚來(lái)、去哪兒等大廠,現(xiàn)在已經(jīng)簽約螞蟻數(shù)據(jù)研發(fā)工程師。依稀還記得剛開始找工作,從零開始準(zhǔn)備八股文的時(shí)候,心情超級(jí)浮躁,不知道該準(zhǔn)備哪些內(nèi)容(大數(shù)據(jù)組件實(shí)在太多了?。。。?,不知道哪些是重點(diǎn),在這里感謝一下CSDN平臺(tái),提供了大量的面經(jīng),讓我更快的抓住面試重點(diǎn)。在找工作的整個(gè)過(guò)程中,有了和面試官無(wú)數(shù)次交鋒的機(jī)會(huì),終于總結(jié)出了一份最強(qiáng)大數(shù)據(jù)面試筆記,非常好用?。?!最后,為了回饋CSDN,決定將自己總結(jié)的所有面試重點(diǎn)題目開源出來(lái),供大家學(xué)習(xí)參考!?。?/p>
全文共分為八大部分,涵蓋大數(shù)據(jù)開發(fā)JAVA計(jì)算機(jī)基礎(chǔ)數(shù)倉(cāng)理論SQL場(chǎng)景等面試題
第一部分 大數(shù)據(jù)開發(fā)
HDFS面試重點(diǎn)
1. HDFS的架構(gòu)
2. HDFS的讀寫流程
3.HDFS中,文件為什么以block塊的方式存儲(chǔ)
4. 小文件過(guò)多有什么危害,你知道的解決辦法有哪些
5.在NameNode HA中,會(huì)出現(xiàn)腦裂問(wèn)題嗎?怎么解決腦裂
6. 簡(jiǎn)述hadoop壓縮和解壓縮的框架
7.namenode的安全模式有了解嗎
8. Secondary NameNode 了解嗎,它的工作機(jī)制是怎樣的
9. 在上傳文件的時(shí)候,其中一個(gè) DataNode 突然掛掉了怎么辦
10. 在讀取文件的時(shí)候,其中一個(gè)塊突然損壞了怎么辦
11.介紹namenode宕機(jī)的數(shù)據(jù)恢復(fù)過(guò)程
12. NameNode 在啟動(dòng)的時(shí)候會(huì)做哪些操作
MapReduce面試重點(diǎn)
1. 簡(jiǎn)述MapReduce整個(gè)流程
2. 手寫wordcount
3. join原理
4. 文件切片相關(guān)問(wèn)題
5. 環(huán)形緩沖區(qū)的底層實(shí)現(xiàn)
6. 全排序
7. MapReduce實(shí)現(xiàn)TopK算法
Yarn面試重點(diǎn)
1. 簡(jiǎn)述yarn 集群的架構(gòu)
2. yarn 的任務(wù)提交流程是怎樣的
3. yarn的資源調(diào)度的三種模型
4. 簡(jiǎn)述Hadoop1.0 2.0 3.0區(qū)別
5. 任務(wù)的推測(cè)執(zhí)行(spark ui見過(guò))
Zookeeper面試重點(diǎn)
1. 簡(jiǎn)述leader選舉機(jī)制
2. 簡(jiǎn)述什么是CAP理論,zookeeper滿足CAP的哪兩個(gè)
3. zookeeper集群的節(jié)點(diǎn)數(shù)為什么建議奇數(shù)臺(tái)
4. 簡(jiǎn)述ZooKeeper的監(jiān)聽原理
5. 請(qǐng)說(shuō)一下zookeeper的典型應(yīng)用場(chǎng)景有哪些
6. 客戶端向服務(wù)端寫數(shù)據(jù)流程
7. zookeeper是如何實(shí)現(xiàn)分布式鎖的
8. Paxos算法
9. Zab協(xié)議
Flume面試重點(diǎn)
1. 簡(jiǎn)述flume基礎(chǔ)架構(gòu)
2. 請(qǐng)說(shuō)一下你提到的幾種source的不同點(diǎn)
3. 簡(jiǎn)述flume的事務(wù)機(jī)制
4. flume采集數(shù)據(jù)會(huì)丟失嗎
5. 簡(jiǎn)述flume的channel selector
Kafka面試重點(diǎn)
1. 為什么要使用kafka
2. 簡(jiǎn)述kafka的架構(gòu)
3. 命令行操作
4. 生產(chǎn)者發(fā)送流程
5. 簡(jiǎn)述kafka的分區(qū)策略
6. kafka是如何保證數(shù)據(jù)不丟失和數(shù)據(jù)不重復(fù)
7. kafka中的數(shù)據(jù)是有序的嗎,如何保證有序的呢
8. zookeeper在kafka中的作用有哪些
9. broker工作流程
10. 簡(jiǎn)述kafka消息的存儲(chǔ)機(jī)制
11. kafka的數(shù)據(jù)是放在磁盤上還是內(nèi)存上,為什么速度會(huì)快
12.kafka消費(fèi)方式
13 kafka消息數(shù)據(jù)積壓,消費(fèi)者如何提高吞吐量
14. 你知道Kafka 單條日志傳輸大小嗎
15. Kafka為什么同一個(gè)消費(fèi)者組的消費(fèi)者不能消費(fèi)相同的分區(qū)
HBase面試重點(diǎn)題
1. 簡(jiǎn)述HBase的數(shù)據(jù)模型
2. HBase和hive的區(qū)別
3. HBase的基本架構(gòu)
4. 簡(jiǎn)述HBase的讀寫流程
5. HBase在寫過(guò)程中的region的split時(shí)機(jī)
6. HBase 中 compact 用途是什么,什么時(shí)候觸發(fā),分為哪兩種,有什么區(qū)別
7. 熱點(diǎn)現(xiàn)象怎么產(chǎn)生的,以及解決方法有哪些
8. 說(shuō)一下HBase 的 rowkey 設(shè)計(jì)原則
9. 列族的設(shè)計(jì)規(guī)則
Hive面試重點(diǎn)
1. 簡(jiǎn)述hive
2. 簡(jiǎn)述hive讀寫文件機(jī)制
3. hive和傳統(tǒng)數(shù)據(jù)庫(kù)之間的區(qū)別
4. hive的內(nèi)部表和外部表的區(qū)別
5. hive靜態(tài)分區(qū)和動(dòng)態(tài)分區(qū)的區(qū)別
6. 內(nèi)連接、左外連接、右外連接的區(qū)別
7. hive的join底層實(shí)現(xiàn)
8. Order By和Sort By的區(qū)別
9. 行轉(zhuǎn)列和列轉(zhuǎn)行函數(shù)
10. grouping_sets、cube和rollup
11. 自定義過(guò)UDF、UDTF函數(shù)嗎
12. hive3的新特性有了解過(guò)嗎
13. hive小文件過(guò)多怎么辦
14. Hive優(yōu)化
15. 常用函數(shù)的補(bǔ)充
Spark面試重點(diǎn)
1. 簡(jiǎn)述hadoop 和 spark 的不同點(diǎn)(為什么spark更快)
2. 談?wù)勀銓?duì)RDD的理解
3. 簡(jiǎn)述spark的shuffle過(guò)程
4. spark的作業(yè)運(yùn)行流程是怎么樣的
5. spark driver的作用,以及client模式和cluster模式的區(qū)別
6. 你知道Application、Job、Stage、Task他們之間的關(guān)系嗎
7. Spark常見的算子介紹一下(10個(gè)以上)
8. 簡(jiǎn)述map和mapPartitions的區(qū)別
9. 你知道重分區(qū)的相關(guān)算子嗎
10. spark目前支持哪幾種分區(qū)策略
11. 簡(jiǎn)述groupByKey和reduceByKey的區(qū)別
12. 簡(jiǎn)述reduceByKey、foldByKey、aggregateByKey、combineByKey 的區(qū)別
13. 寬依賴和窄依賴之間的區(qū)別
14. spark為什么需要RDD持久化,持久化的方式有哪幾種,他們之間的區(qū)別是什么
15. 簡(jiǎn)述spark的容錯(cuò)機(jī)制
16. 除了RDD,你還了解spark的其他數(shù)據(jù)結(jié)構(gòu)嗎
17. spark調(diào)優(yōu)
18. 談一談RDD,DataFrame,DataSet的區(qū)別
19. Hive on Spark與SparkSql的區(qū)別
20. sparksql的三種join實(shí)現(xiàn)
21. 簡(jiǎn)單介紹下sparkstreaming
22. 你知道sparkstreaming的背壓機(jī)制嗎
23. SparkStreaming有哪幾種方式消費(fèi)Kafka中的數(shù)據(jù),它們之間的區(qū)別是什么
24. 說(shuō)一下你知道的DStream轉(zhuǎn)換和輸出原語(yǔ)
25. 簡(jiǎn)述SparkStreaming窗口函數(shù)的原理
Flink面試重點(diǎn)題
1. 簡(jiǎn)單介紹一下Flink
2. Flink和SparkStreaming區(qū)別
3. Flink的重啟策略你了解嗎
4. Flink的運(yùn)行依賴于hadoop組件嗎
5. Flink 集群有哪些角色?各自有什么作用
6. 簡(jiǎn)述flink運(yùn)行流程(基于Yarn)
7. max算子和maxBy算子的區(qū)別
8. Connect算子和Union算子的區(qū)別
9. Flink的時(shí)間語(yǔ)義有哪幾種
10. 談一談你對(duì)watermark的理解
11. flink對(duì)于遲到或者亂序數(shù)據(jù)是怎么處理的
12. flink中,有哪幾種類型的狀態(tài),你知道狀態(tài)后端嗎
13. Flink是如何做容錯(cuò)的
14. Flink 是如何保證 Exactly-once 語(yǔ)義的
15. flink是如何處理反壓的
16. Flink 是如何支持批流一體的
17. 你用過(guò)Flink CEP嗎,簡(jiǎn)單介紹一下
第二部分 Java開發(fā)
java基礎(chǔ)
1. JDK、JRE、JVM三者區(qū)別和聯(lián)系
2. 基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的區(qū)別
3. 8種基本數(shù)據(jù)類型、字節(jié)大小
4. 訪問(wèn)修飾符權(quán)限
5. java中方法的參數(shù)傳遞機(jī)制
6. final關(guān)鍵字
7. static關(guān)鍵字的作用是什么
8. Comparable和Comparator區(qū)別
9. Object類有哪些方法
10. java的深拷貝和淺拷貝的區(qū)別
11. java中==和equals的區(qū)別
12. String和StringBuffer、StringBuilder的區(qū)別
13. 簡(jiǎn)述面向?qū)ο笕筇卣?/p>
14. java中方法重載和重寫的區(qū)別
15. 抽象類和接口的區(qū)別
16. 集合之間的繼承關(guān)系
17. ArrayList和LinkedList區(qū)別
18. ArrayList擴(kuò)容過(guò)程
19. HashMap底層實(shí)現(xiàn)
20. HashMap擴(kuò)容過(guò)程
21. HashMap中為啥用紅黑樹不用二叉排序樹或者平衡樹
22. TreeMap底層實(shí)現(xiàn)
23. HashMap和Hashtable的區(qū)別?
24. Hashtable怎么保證線程安全的
25. ConcurrentHashMap原理
26. java反射機(jī)制
27. 異常體系
28. 常見的IO模型
29. 設(shè)計(jì)模式
30. 一致性hash算法
JVM
1. java運(yùn)行時(shí)一個(gè)類是什么時(shí)候加載的
2. JVM一個(gè)類的加載過(guò)程
3. 繼承時(shí)父子類的初始化順序是怎樣的
4. 什么是類加載器
5. JVM有哪些類加載器
6. 什么是雙親委派模型
7. JDK為什么要設(shè)計(jì)雙親委派模型,有什么好處
8. 可以打破雙親委派模型嗎?如何打破?
9. 如何自定義類加載器
10. ClassLoader中的loadClass()、findClass()、defineClass()區(qū)別
11. 加載一個(gè)類采用Class.forName()和ClassLoader.loadClass()有什么區(qū)別
12. Tomcat的類加載機(jī)制
13. 為什么Tomcat要破壞雙親委派模型
14. 熱加載和熱部署,如何自己實(shí)現(xiàn)一個(gè)熱加載
15. java代碼到底是如何運(yùn)行起來(lái)的
16. JVM內(nèi)存結(jié)構(gòu)
17. Java對(duì)象如何在堆內(nèi)存分配
18. JVM堆內(nèi)存中的對(duì)象布局
19. JVM什么情況下會(huì)發(fā)生堆內(nèi)存溢出
20. JVM如何判斷對(duì)象可以被回收
21. java中不同的引用類型
22. JVM堆中新生代的垃圾回收過(guò)程
23. JVM對(duì)象動(dòng)態(tài)年齡判斷是怎么回事
24. 什么是老年代空間分配擔(dān)保機(jī)制
25. 什么情況下對(duì)象會(huì)進(jìn)入老年代
26. JVM本機(jī)直接內(nèi)存的特點(diǎn)及作用
27. 幾個(gè)與JVM內(nèi)存相關(guān)的核心參數(shù)
28. 堆為什么要分為新生代和老年代
29. 新生代為什么要有兩個(gè)survivor區(qū)
30. eden區(qū)與survivor區(qū)的空間大小比例為什么是8:1:1
31. JVM中的垃圾回收算法
32. JVM垃圾收集器
33. full gc是什么
并發(fā)編程
1. java實(shí)現(xiàn)多線程有幾種方式
2. 線程池相關(guān)內(nèi)容
3. 線程有哪幾種狀態(tài)
4. sleep,wait,notify,yield和join方法的區(qū)別
5. 什么是上下文切換
6. 設(shè)計(jì)一個(gè)簡(jiǎn)單的死鎖程序
7. ThreadLocal相關(guān)內(nèi)容
8. 并發(fā)編程的三個(gè)問(wèn)題
9. 介紹一下java內(nèi)存模型
10. synchronized是如何保證三大特性
11. synchronized的特性
12. synchronized 的原理
13. ReentrantLock底層原理
14. synchronized與lock的區(qū)別
15. volatile的作用
16. volatile和synchronized的區(qū)別
17. CAS介紹一下
18. 樂觀鎖和悲觀鎖的區(qū)別
19. 鎖升級(jí)的過(guò)程
20. synchronized優(yōu)化
第三部分 計(jì)算機(jī)基礎(chǔ)
計(jì)算機(jī)網(wǎng)絡(luò)
1. OSI七層模型
2. TCP連接管理
3. TCP連接建立為什么需要三次握手
4. TCP連接釋放為什么需要四次揮手
5. TCP連接釋放的第四次握手為什么要等待2MSL
6. TCP是如何做到可靠傳輸?shù)?/p>
7. TCP流量控制
8. TCP擁塞控制
9. 流量控制和擁塞控制的區(qū)別
10. TCP和UDP的區(qū)別
11. 視頻面試中用TCP還是UDP
12. UDP如何實(shí)現(xiàn)可靠傳輸
13. TCP粘包問(wèn)題以及解決方案
14. 域名解析的過(guò)程
15. 瀏覽器輸入U(xiǎn)RL到顯示頁(yè)面的過(guò)程
16. 介紹HTTP
17. HTTP 1.0 和 HTTP 1.1 的主要區(qū)別是什么
18. HTTP和HTTPs的區(qū)別
19. HTTP是如何保存用戶狀態(tài)的
20. GET和POST的區(qū)別
21. 常見的狀態(tài)碼
22. ARP地址解析協(xié)議
操作系統(tǒng)
1. 什么是操作系統(tǒng)
2. 什么是系統(tǒng)調(diào)用
3. 進(jìn)程和線程的區(qū)別
4. 進(jìn)程有哪幾種狀態(tài)
5. 進(jìn)程間的通信方式
6. 進(jìn)程同步的四種方式
7. 進(jìn)程的調(diào)度算法
8. 什么是死鎖以及死鎖的四個(gè)條件
9. 常見的幾種內(nèi)存管理機(jī)制
10. 分頁(yè)機(jī)制和分段機(jī)制的共同點(diǎn)和區(qū)別
11. 快表和多級(jí)頁(yè)表
12. CPU 尋址了解嗎?為什么需要虛擬地址空間?
13. 什么是虛擬內(nèi)存(Virtual Memory)
14. 什么是局部性原理
15. 虛擬存儲(chǔ)器
16. 虛擬內(nèi)存的幾種實(shí)現(xiàn)
17. 頁(yè)面置換算法
18. 僵尸進(jìn)程和孤兒進(jìn)程是什么
數(shù)據(jù)庫(kù)
1. 索引是什么
2. mysql中索引的分類有哪些
3. B+樹和B樹的區(qū)別
4. mysql的索引結(jié)構(gòu)
5. 為什么不用二叉樹,紅黑樹,哈希表,B樹
6. 聚集索引和非聚集索引的區(qū)別
7. 回表查詢是什么
8. 覆蓋索引是什么
9. 索引下推
10. 主鍵索引和輔助索引具體是什么
11. 為什么建議用自增id做索引而不用UUID
12. 主鍵索引使用int和string有啥區(qū)別
13. 缺少主鍵的話mysql怎么處理
14. 選什么字段當(dāng)索引,索引何時(shí)失效
15. 索引合并和復(fù)合索引的區(qū)別
16. 簡(jiǎn)述事務(wù)
17. 數(shù)據(jù)庫(kù)事務(wù)并發(fā)會(huì)引發(fā)哪些問(wèn)題
18. 事務(wù)的四個(gè)隔離級(jí)別有哪些
19. 什么是幻讀,如何解決
20. MySQL是如何保證ACID的
21. MySQL支持的鎖有哪些
22. MVCC講一下(怎么實(shí)現(xiàn))
23. 間隙鎖講一下
24. 怎么實(shí)現(xiàn)可重復(fù)讀(讀提交)
25. select ... for update
26. 樂觀鎖與悲觀鎖,mysql如何實(shí)現(xiàn)樂觀鎖
27. MySQL中常見的幾種日志
28. MySQL主從復(fù)制的流程
29. 關(guān)系型數(shù)據(jù)庫(kù)與非關(guān)系型數(shù)據(jù)庫(kù)的區(qū)別
30. 說(shuō)一說(shuō)drop、delete和truncate的共同點(diǎn)和區(qū)別
31. 數(shù)據(jù)庫(kù)3個(gè)范式
32. MySQL中char和varchar的區(qū)別有哪些
33. MySQL中inner join、left join、right join和full join的區(qū)別有哪些
34. MySQL的執(zhí)行順序
35. having和where的區(qū)別
36. MySQL的存儲(chǔ)引擎,以及區(qū)別
37. 大數(shù)據(jù)量里的分頁(yè)查詢?cè)趺磧?yōu)化
38. SQL的優(yōu)化方法
39. MySQL中視圖和表的區(qū)別
40. 數(shù)據(jù)完整性約束
41. group by的實(shí)現(xiàn)方式
數(shù)據(jù)結(jié)構(gòu)
1. 鏈表和數(shù)組的區(qū)別
2. 靜態(tài)鏈表和動(dòng)態(tài)鏈表的區(qū)別
3. 棧和隊(duì)列的區(qū)別
4. 紅黑樹了解嗎
5. 常見的排序算法
6. 圖的常見算法
第四部分 數(shù)倉(cāng)基礎(chǔ)
1.數(shù)據(jù)倉(cāng)庫(kù)是什么
2.數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)庫(kù)有什么區(qū)別
3.為什么要對(duì)數(shù)據(jù)倉(cāng)庫(kù)分層
4.為什么需要數(shù)據(jù)建模
5.經(jīng)典的數(shù)據(jù)倉(cāng)庫(kù)建模方法論有哪些
6.數(shù)倉(cāng)相關(guān)的名詞術(shù)語(yǔ)解釋,比如數(shù)據(jù)域、業(yè)務(wù)過(guò)程、衍生指標(biāo)
7.派生指標(biāo)的種類
8.經(jīng)典數(shù)倉(cāng)分層架構(gòu)
9.模型設(shè)計(jì)的基本原則
10.模型實(shí)施的具體步驟
11.維度建模有哪幾種模型
12.維度建模中表的類型
13.維度表的設(shè)計(jì)過(guò)程
14.維度表的設(shè)計(jì)中有哪些值得注意的地方
15.維度規(guī)范化和反規(guī)范化如何理解
16.維表整合的兩種表現(xiàn)形式
17.如何處理維度的變化
18.事實(shí)表設(shè)計(jì)的八大原則
19.事實(shí)表的設(shè)計(jì)過(guò)程
20.事實(shí)表有哪幾種類型
21.多事務(wù)事實(shí)表如何對(duì)事實(shí)進(jìn)行處理
22.單事務(wù)事實(shí)表和多事務(wù)事實(shí)表哪種設(shè)計(jì)更好
23.周期快照事實(shí)表的設(shè)計(jì)過(guò)程
24.累計(jì)快照事實(shí)表的設(shè)計(jì)過(guò)程
25.累計(jì)快照事實(shí)表的特點(diǎn)
第五部分 常考SQL
1.連續(xù)問(wèn)題
2.分組問(wèn)題
3.間隔連續(xù)問(wèn)題
4.打折日期交叉問(wèn)題
5.同時(shí)在線問(wèn)題
6.最大連續(xù)登陸的最大天數(shù)問(wèn)題
7.留存問(wèn)題
第六部分 場(chǎng)景題
1.1億個(gè)整數(shù)中找出最大的10000個(gè)數(shù)
2.給定a、b兩個(gè)文件,各存放50億個(gè)url,每個(gè)url各占64字節(jié),內(nèi)存限制是4G,讓你找出a、b文件共同的url
3.有一個(gè)1G大小的一個(gè)文件,里面每一行是一個(gè)詞,詞的大小不超過(guò)16字節(jié),內(nèi)存限制大小是1M,要求返回頻數(shù)最高的100個(gè)詞
4.有一個(gè)1G大小的一個(gè)文件,里面每一行是一個(gè)詞,詞的大小不超過(guò)16字節(jié),內(nèi)存限制大小是1M,要求返回頻數(shù)最高的100個(gè)詞
5.外部排序
6.大數(shù)量中尋找中位數(shù)【網(wǎng)易】
7.大數(shù)量中尋找中位數(shù)【網(wǎng)易】
8.數(shù)據(jù)傾斜
第七部分 大廠面經(jīng)合集
美團(tuán)、螞蟻、阿里、字節(jié)跳動(dòng)、百度、滴滴、網(wǎng)易、快手、微眾、京東、攜程文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-741122.html
共計(jì)100+篇面經(jīng)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-741122.html
第八部分 大廠SQL真題
短視頻業(yè)務(wù)
用戶增長(zhǎng)業(yè)務(wù)
電商業(yè)務(wù)
打車業(yè)務(wù)
教育業(yè)務(wù)
內(nèi)容業(yè)務(wù)
到了這里,關(guān)于史上最全的2023最新大數(shù)據(jù)面試筆記【200+頁(yè),10w+字】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!