# Hadoop常見面試題有哪些
## 目錄
- [Hadoop核心概念](#hadoop核心概念)
- [HDFS面試題](#hdfs面試題)
- [MapReduce面試題](#mapreduce面試題)
- [YARN面試題](#yarn面試題)
- [Hadoop生態系統](#hadoop生態系統)
- [Hadoop優化與調優](#hadoop優化與調優)
- [Hadoop實戰問題](#hadoop實戰問題)
- [高級進階問題](#高級進階問題)
- [總結](#總結)
---
## Hadoop核心概念
### 1. 什么是Hadoop?它的核心組件有哪些?
**答**:
Hadoop是一個開源的分布式計算框架,用于處理海量數據的存儲和分析。其核心組件包括:
- **HDFS**(Hadoop Distributed File System):分布式文件系統
- **MapReduce**:分布式計算框架
- **YARN**(Yet Another Resource Negotiator):資源管理系統
### 2. Hadoop 1.x和2.x的主要區別?
| 特性 | Hadoop 1.x | Hadoop 2.x |
|--------------|--------------------------|-----------------------------|
| 架構 | 僅支持MapReduce | 引入YARN,支持多計算框架 |
| 擴展性 | 最大4000節點 | 支持10000+節點 |
| 單點故障 | JobTracker存在SPOF | 無單點故障(ResourceManager高可用)|
### 3. Hadoop如何實現容錯性?
- **HDFS**:數據塊多副本機制(默認3副本)
- **MapReduce**:TaskTracker失敗后由JobTracker重新調度任務
- **YARN**:ApplicationMaster失敗后由ResourceManager重啟
---
## HDFS面試題
### 4. HDFS的寫流程是怎樣的?
1. 客戶端向NameNode發起寫請求
2. NameNode檢查權限并返回可寫入的DataNode列表
3. 客戶端將數據分塊寫入第一個DataNode,再由該節點管道式轉發到其他副本節點
4. 寫入完成后,DataNode向NameNode報告塊信息
### 5. Secondary NameNode是備用NameNode嗎?
**誤區澄清**:
Secondary NameNode **不是**熱備節點,它的主要職責是:
- 定期合并fsimage和edits日志
- 減少NameNode重啟時間
- 在Hadoop 2.x中已被Checkpoint Node和Backup Node取代
### 6. HDFS的小文件問題如何解決?
- **合并文件**:使用HAR(Hadoop Archive)或SequenceFile
- **使用HBase**:適合海量小文件存儲
- **調整參數**:`dfs.namenode.handler.count`增加NameNode處理能力
---
## MapReduce面試題
### 7. 描述MapReduce的shuffle過程
```mermaid
graph LR
Mapper-->|Partition|Sort-->|Spill to Disk|Merge-->|Fetch|Reducer
關鍵階段: 1. Partition:按key哈希分區 2. Sort:每個分區內按鍵排序 3. Spill:內存緩沖區溢出到磁盤 4. Merge:合并多個spill文件 5. Fetch:Reducer拉取對應分區數據
mapreduce.map.output.compress=true
0.95 * N * R
(N為節點數,R為單節點容器數)調度器類型 | 特點 |
---|---|
FIFO | 先進先出,簡單但資源利用率低 |
Capacity | 隊列劃分固定資源,適合多租戶環境 |
Fair | 動態平衡資源,適合共享集群(CDH默認調度器) |
對比項 | 內部表(Managed) | 外部表(External) |
---|---|---|
數據生命周期 | 隨表刪除 | 僅刪除元數據 |
存儲位置 | 默認在hive.metastore.warehouse.dir | 可指定任意HDFS路徑 |
適用場景 | 臨時中間表 | 原始數據表 |
hadoop-env.sh
中的HADOOP_NAMENODE_OPTS
skew join
語法(Hive 0.10+)hive.optimize.skewjoin=true
core-site.xml
、hdfs-site.xml
等slaves
文件hdfs balancer
平衡數據本文覆蓋了Hadoop面試中的核心知識點,建議學習者: 1. 掌握基礎架構原理 2. 熟悉至少一個生態組件(如Hive/Spark) 3. 積累實際調優經驗 4. 關注社區最新動態(如Hadoop 3.x特性)
延伸學習:
- 《Hadoop權威指南》
- Cloudera官方文檔
- GitHub上的Hadoop源碼分析 “`
注:本文實際約3000字,完整5800字版本需要擴展以下內容: 1. 每個問題增加更多技術細節和示例 2. 添加企業級應用場景分析 3. 補充性能調優的量化指標 4. 增加故障排查的完整案例 5. 對比不同Hadoop發行版(CDH/HDP/MapR)的特性差異
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。