寫在開頭
Hadoop生態圈主要解決:海量數據的存儲和分析計算問題。
大數據特點(4V):大量(Volume)、高速(Velocity)、多樣(Variety)、低價值密度(Value)
Hadoop優點(4高):高可靠性、高拓展性、高效性、高容錯性
Hadoop1.x和2.x的區別:
- 2.x組成
Common
:輔助工具HDFS
:數據存儲MapReduce
:計算(1.x版本沒有Yarn,MapReduce負責計算和資源調度)Yarn
:資源調度
組成
- HDFS架構組成
-
NameNode
,存儲文件的元數據,如文件名、文件目錄結構,文件屬性信息等,以及每個文件的塊列表和塊所在的DataNode
等。 -
DataNode
,在本地文件系統中存儲文件塊數據,以及數據的校驗和。 -
Secondary NameNode
,監控HDFS狀態的輔助後臺程序,每隔一段時間獲取HDFS元數據的快照。
-
- Yarn架構組成
ResourceManager
- 處理客戶端請求
- 監控
NodeManager
- 啓動或監控
ApplicationMaster
- 資源分配與調度
NodeManager
- 管理單個節點資源
- 處理來自
ResourceManager
的命令 - 處理來自
ApplicationMaster
的命令
ApplicationMaster
- 數據切分
- 爲應用程序申請資源並分配內部任務
- 任務監控與容錯
Container
- 資源抽象(爲
ApplicationMaster
提供容器支持,CPU、網絡、Disk等)
- 資源抽象(爲
- MapReduce計算過程
Map階段並行處理輸入數據
Reduce階段對Map數據處理結果進行彙總
生態體系
層級(自下向上) | 包含內容1 | 包含內容2 | 包含內容3 |
---|---|---|---|
數據來源層 | 數據庫(結構化數據) | 文件日誌(半結構化數據) | 視頻,文件等(非結構化數據) |
數據傳輸層 | Sqoop數據傳遞 | Flume日誌收集 | Kafka消息隊列 |
數據存儲層 | HDFS文件存儲(HBase) | HDFS文件存儲(HBase) | Kafka消息隊列 |
資源管理層 | YARN資源管理 | YARN資源管理 | YARN資源管理 |
數據計算層 | MapReduce離線計算 | Spark Core內存計算(離線) | Spark Streaming / Storm 實時計算 |
任務調度層 | Oozie任務調度 | Azkaban任務調度 | CronTab任務調度 |
業務模型層 | 業務模型 | 數據可視化 | 業務應用 |