?結(jié)合自身面試經(jīng)歷,包括BAT、SF、中信等等公司所做的面試題匯總。主要包括以下幾大類:
一、spark相關(guān)
1.Spark的Shuffle原理及調(diào)優(yōu)?
2.hadoop和spark使用場景?
3.spark如何保證宕機迅速恢復?
4.hadoop和spark的相同點和不同點?
5.RDD持久化原理?
6.checkpoint檢查點機制?
7.checkpoint和持久化機制的區(qū)別?
8.Spark Streaming和Storm有何區(qū)別?
9.RDD機制?
10.Spark streaming以及基本工作原理?
11.DStream以及基本工作原理?
12.spark有哪些組件?
13.spark工作機制?
14.Spark工作的一個流程?
15.spark核心編程原理?
16.spark基本工作原理?
17.spark性能優(yōu)化有哪些?
18.updateStateByKey詳解?
19.寬依賴和窄依賴?
20.spark streaming中有狀態(tài)轉(zhuǎn)化操作?
21.spark常用的計算框架?
22.spark整體架構(gòu)?
23.Spark的特點是什么?
24.搭建spark集群步驟?
25.Spark的三種提交模式是什么?
26..spark內(nèi)核架構(gòu)原理?
27.Spark yarn-cluster架構(gòu)?
28.Spark yarn-client架構(gòu)?
29.SparkContext初始化原理?
30.Spark主備切換機制原理剖析?
31.spark支持故障恢復的方式?
32.spark解決了hadoop的哪些問題?
33.數(shù)據(jù)傾斜的產(chǎn)生和解決辦法?
34.spark 實現(xiàn)高可用性:High Availability?
35.spark實際工作中,是怎么來根據(jù)任務量,判定需要多少資源的?
36.spark中怎么解決內(nèi)存泄漏問題?
二、hadoop
1.講述HDFS上傳文件和讀文件的流程?
2.HDFS在上傳文件的時候,如果其中一個塊突然損壞了怎么辦?
3.NameNode的作用?
4.NameNode在啟動的時候會做哪些操作?
5.NameNode的HA?
6.Hadoop的作業(yè)提交流程?
7.Hadoop怎么分片?
8.如何減少Hadoop Map端到Reduce端的數(shù)據(jù)傳輸量?
9.Hadoop的Shuffle?
10.哪些場景才能使用Combiner呢?
11.HMaster的作用?
12.如何實現(xiàn)hadoop的安全機制?
13.hadoop的調(diào)度策略的實現(xiàn),你們使用的是那種策略,為什么?
14.數(shù)據(jù)傾斜怎么處理?
15.評述hadoop運行原理?
16.簡答說一下hadoop的map-reduce編程模型?
17.hadoop的TextInputFormat作用是什么,如何自定義實現(xiàn)?
18.map-reduce程序運行的時候會有什么比較常見的問題?
19.Hadoop平臺集群配置、環(huán)境變量設置?
20.Hadoop性能調(diào)優(yōu)?
21.Hadoop高并發(fā)?
三、HBase
1.HBase的操作數(shù)據(jù)的步驟?
2.HDFS和HBase各自使用場景?
3.熱點現(xiàn)象及解決辦法?
4.RowKey的設計原則?
5.hbase.hregion.max.filesize應該設置多少合適?
6.autoflush=false的影響?
8.Hbase行健列族的概念,物理模型,表的設計原則?
9.HBase存儲單元Cell?
10.HBase物理模型?
11.HBase的客戶端Client?
12.HBase二級索引?
四、Hive
1. hadoop中兩個大表實現(xiàn)join的操作,簡單描述?
2.Hive中存放是什么?
3.Hive與關(guān)系型數(shù)據(jù)庫的關(guān)系?
4.講一下數(shù)據(jù)庫,SQl ,左外連接, 原理,實現(xiàn)?
5.大表和小表join?
6. 數(shù)據(jù)清洗怎么做的?怎么用spark做數(shù)據(jù)清洗?
7. Hadoop中二次排序怎么做?
8. hadoop常見的join操作?
9. hive優(yōu)化有哪些?
10. 分析函數(shù)?
五、Java
1.講講多線程吧,要是你,你怎么實現(xiàn)一個線程池呢?
2.項目用什么語言寫? Scala? Scala的特點? 和Java的區(qū)別?
3.平時對多線程這方面是怎么處理呢?
4.什么是jvm?
5.jvm怎么調(diào)優(yōu)的?
6.jvm結(jié)構(gòu)?堆里面幾個區(qū)?
7.jdbc?mysql的驅(qū)動包名字叫什么?
8.java自帶有哪幾種線程池?
9. GC機制?
10. 使用泛型的好處?
11.HashMap?
12.Java多線程的狀態(tài)?
六、機器學習算法
1.簡要描述你知道的數(shù)據(jù)挖掘算法和使用場景?
2.mllib支持的算法?
3.ALS算法原理?
4.kmeans算法原理?
5.canopy算法原理?
6.樸素貝葉斯分類算法原理?
7.關(guān)聯(lián)規(guī)則挖掘算法apriori原理?