最新大數據開發面經分享:北京快手大數據研發技術面經

阿福班主任 發佈 2020-01-02T15:29:50+00:00

昨天面的, 下午2點到6點多, 全程見了2位HR和4位研發, 其中2位研發是比較高級的leader. 目前等HR回覆中自己之前在小公司做了2年大數據, 人手少, 哪裡需要哪裡搬, 所以這次被考察的面也有點廣題目做了一下簡單記錄, 會有遺漏, 並且沒有按順序哈.



昨天面的, 下午2點到6點多, 全程見了2位HR和4位研發, 其中2位研發是比較高級的leader. 目前等HR回覆中

自己之前在小公司做了2年大數據, 人手少, 哪裡需要哪裡搬, 所以這次被考察的面也有點廣

題目做了一下簡單記錄, 會有遺漏, 並且沒有按順序哈. 個人覺得大概回答下來80%多吧

Java

1. HashMap的底層數據結構, 為什麼JDK8要用紅黑樹. ConcurrentHashMap的底層數據結構, 如何保證線程安全

2. synchronized關鍵字的本質, 作用是什麼. volatile關鍵字的作用, 哪些情況下會用它

3. Java線程的幾大狀態及轉換. 線程可重入是什麼概念, 可重入鎖呢

4. 如果要設計一個線程池, 需要考慮哪些要素. Executors工廠類能創建哪些線程池, 用過哪些

5. 講一講熟悉的設計模式. 單例模式及工廠模式的實現方法. 裝飾器模式是怎麼一回事

6. 講一講熟悉的JVM GC算法, 常用的垃圾收集器. CMS有什麼優缺點

7. 一個Java應用上線後, 關注哪些性能指標. 如果響應時間過長或者CPU占用過高, 如何排查, 用哪些工具或命令

大數據組件

1. 是否自己搭建的集群, 集群節點數及配置

2. Hadoop的XML配置文件有哪些, 改過哪些參數, 分別代表什麼含義

3. HDFS NameNode高可用如何實現, 需要哪些角色. YARN有哪些組件, 如何分配資源

4. Spark RDD有哪些特點, 寬依賴和窄依賴. RDD的緩存級別

5. DAGScheduler及stage如何劃分. 給一個比較複雜的RDD lineage, 手動劃分stage和task

6. Spark Streaming以一定的時間窗口統計PV/UV, 如果窗口內數據量暴漲, 如何保證穩定性. 如果會延遲上報, 如何保證實時性

7. Kafka與Spark Streaming集成, 如何保證exactly once語義

8. Spark/Hive中大表join小表的優化方法. 數據傾斜和shuffle調優方法

9. 調整過Hive的哪些參數, 用什麼執行引擎. Hive UDF怎麼寫, 寫過哪些. HiveQL是怎樣解析成MR/Spark job的

10. HBase的數據在HDFS上是怎樣存儲的, 寫入數據的流程是怎樣的. 為什麼HBase適合寫多讀少業務

11. HBase的一個region由哪些東西組成. RegionServer宕機之後如何感知, 如何遷移數據

12. 為什麼選用Kudu作為HBase和Hive的折中方案, 它有什麼特點. 如果不用Kudu, HBase的二級索引能解決問題嗎

13. Impala的查詢及執行與Hive有什麼不同 [PS. 我之前的項目里用了Kudu+Impala]

數據倉庫設計

1. 之前業務中的數據倉庫是如何分層的, 怎樣建模, 主題如何劃分

2. 從ODS到DW層的ETL, 做了哪些工作

3. 1~3NF的含義. 維度建模中星型模型和雪花模型的不同. 代理鍵是什麼, 支架表是什麼

4. 如何處理緩慢變化維. 怎樣建設拉鍊表, 如何在拉鍊表中恢復最新數據

算法和應用題

1. 最長公共子序列(LCS)問題. 動態規劃

2. 找出二叉樹中任意兩個節點的最低公共根節點, 如果樹是BST呢. 深度優先搜索+二分查找樹性質

3. 10億條64B長的URL, 限定1G內存, 做計數, 如果要TopN的話呢. 哈希分桶+堆排序時間複雜度

4. 用戶行為日誌有UID和時間戳, 設定一個session間隔. 離線及在線地計算用戶的平均session長度

5. 之前做過標籤推薦系統, 詳細講一下架構和自己設計的算法. 算法流程是行為評分+指數衰減+線性歸一化+餘弦相似度/皮爾遜相關性+TF-IDF打壓

碼字不易,如果您覺得文章寫得不錯,

請您 1.關注作者~ 您的關注是我寫作的最大動力

2.私信我「大數據」

我將與您分享一套最新的大數據學習資源和全套開發工具


關鍵字: