大數(shù)據(jù)Hadoop架構(gòu)概覽

image-20211107131701563

Hadoop架構(gòu)概覽

參考:尚硅谷大數(shù)據(jù)Hadoop 3.x

1 Hadoop組成

  1. HDFS
  2. Yarn
  3. MapReduce
  4. Common輔助工具
image-20211107121931071

1.1 HDFS概述

Hadoop Distributed File System,簡(jiǎn)稱HDFS,是一個(gè)分布式文件系統(tǒng)

包含:NameNode(nn)、DataNode(dn) 和 Secondary NameNode (2nn)

image-20211107123345141

1.1.1 NameNode(nn)

就是Master,它是一個(gè)主管、管理者。
(1)管理HDFS的名稱空間;
(2)配置副本策略;
(3)管理數(shù)據(jù)塊(Block)映射信息;
(4)處理客戶端讀寫請(qǐng)求。

1.1.2 DataNode(dn)

就是Slave,NameNode下達(dá)命令,DataNode執(zhí)行實(shí)際的操作。
(1)存儲(chǔ)實(shí)際的數(shù)據(jù)塊;
(2)執(zhí)行數(shù)據(jù)塊的讀/寫操作。

1.1.3 Client

就是需要使用HDFS能力的客戶端。
(1)文件切分。文件上傳HDFS的時(shí)候,Client將文件切分成一個(gè)一個(gè)的Block,然后進(jìn)行上傳;
(2)與NameNode交互,獲取文件的位置信息;
(3)與DataNode交互,讀取或者寫入數(shù)據(jù);
(4)Client提供一些命令來管理HDFS,比如NameNode格式化;
(5)Client可以通過一些命令來訪問HDFS,比如對(duì)HDFS增刪查改操作。

1.1.4 Secondary NameNode(2nn)

并非NameNode的熱備份。當(dāng)NameNode掛掉的時(shí)候,它并不能馬上替換NameNode并提供服務(wù)。
(1)輔助NameNode,分擔(dān)其工作量,比如定期合并Fsimage和Edits,并推送給NameNode ;
(2)在緊急情況下,可輔助恢復(fù)NameNode。


1.2 Yarn概述

Yet Another Resource Negotiator 簡(jiǎn)稱YARN ,另一種資源協(xié)調(diào)者,是Hadoop 的資源管理器。

包含

  1. ResourceManager(RM):整個(gè)集群資源(內(nèi)存、CPU等)的老大
  2. ApplicationMaster(AM):?jiǎn)蝹€(gè)任務(wù)運(yùn)行的老大
  3. NodeManager(NM):?jiǎn)蝹€(gè)節(jié)點(diǎn)服務(wù)器資源老大
  4. Container:容器,相當(dāng)一臺(tái)獨(dú)立的服務(wù)器,里面封裝了任務(wù)運(yùn)行所需要的資源,如內(nèi)存、CPU、磁盤、網(wǎng)絡(luò)等。
image-20211107124730778

說明

  1. 客戶端可以有多個(gè)
  2. 集群上可以運(yùn)行多個(gè)ApplicationMaster
  3. 每個(gè)NodeManager上可以有多個(gè)Container

1.2.1 ResourceManager(RM)

主要作用如下

  1. 處理客戶端請(qǐng)求
  2. 監(jiān)控NodeManager
  3. 啟動(dòng)或監(jiān)控ApplicationMaster
  4. 資源的分配與調(diào)度

1.2.2 ApplicationMaster(AM)

作用如下

  1. 任務(wù)的監(jiān)控與容錯(cuò)
  2. 為應(yīng)用程序申請(qǐng)資源并分配給內(nèi)部的任務(wù)

1.2.3 NodeManager(NM)

主要作用如下

  1. 管理單個(gè)節(jié)點(diǎn)上的資源
  2. 處理來自ResourceManager的命令
  3. 處理來自ApplicationMaster的命令

1.2.4 Container

Container 是YARN 中的資源抽象,它封裝了某個(gè)節(jié)點(diǎn)上的多維度資源,如內(nèi)存、CPU、磁盤、網(wǎng)絡(luò)等。


1.3 MapReduce概述

MapReduce 是一個(gè)分布式運(yùn)算程序的編程框架,是用戶開發(fā)“基于Hadoop 的數(shù)據(jù)分析應(yīng)用”的核心框架。
MapReduce 核心功能是將用戶編寫的業(yè)務(wù)邏輯代碼和自帶默認(rèn)組件整合成一個(gè)完整的分布式運(yùn)算程序,并發(fā)運(yùn)行在一個(gè)Hadoop 集群上。

MapReduce 將計(jì)算過程分為兩個(gè)階段:Map 和Reduce
1)Map 階段并行處理輸入數(shù)據(jù)
2)Reduce 階段對(duì)Map 結(jié)果進(jìn)行匯總

image-20211107130618514

2 HDFS、YARN、MapReduce 三者關(guān)系

image-20211107130825227

3 大數(shù)據(jù)技術(shù)生態(tài)體系

image-20211107130857988

圖中涉及的技術(shù)名詞解釋:

3.1 Sqoop

Sqoop 是一款開源的工具,主要用于在Hadoop、Hive 與傳統(tǒng)的數(shù)據(jù)庫(kù)(MySQL)間進(jìn)行數(shù)據(jù)的傳遞,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)(例如 :MySQL,Oracle 等)中的數(shù)據(jù)導(dǎo)入到Hadoop 的HDFS 中,也可以將HDFS 的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫(kù)中

3.2 Flume

Flume 是一個(gè)高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume 支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù)

3.3 Kafka

Kafka 是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng)

3.4 Spark

Spark 是當(dāng)前最流行的開源大數(shù)據(jù)內(nèi)存計(jì)算框架。可以基于Hadoop 上存儲(chǔ)的大數(shù)據(jù)進(jìn)行計(jì)算

3.5 Flink

Flink 是當(dāng)前最流行的開源大數(shù)據(jù)內(nèi)存計(jì)算框架。用于實(shí)時(shí)計(jì)算的場(chǎng)景較多

3.6 Oozie

Oozie 是一個(gè)管理Hadoop 作業(yè)(job)的工作流程調(diào)度管理系統(tǒng)

3.7 Hbase

HBase 是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫(kù)。HBase 不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)

3.8 Hive

Hive 是基于Hadoop 的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供簡(jiǎn)單的SQL 查詢功能,可以將SQL 語句轉(zhuǎn)換為MapReduce 任務(wù)進(jìn)行運(yùn)行。其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過類SQL 語句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce 統(tǒng)計(jì),不必開發(fā)專門的MapReduce 應(yīng)用,十分適合數(shù)據(jù)倉(cāng)庫(kù)的統(tǒng)計(jì)分析

3.9 ZooKeeper

是一個(gè)針對(duì)大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容