大數(shù)據(jù)“復(fù)活”記
748
2025-04-01
1. hadoop是什么
hadoop是分布式系統(tǒng)基礎(chǔ)架構(gòu),主要解決海量數(shù)據(jù)存儲和海量數(shù)據(jù)的分析計(jì)算問題。
廣義上來說,hadoop通常指一個(gè)更廣泛的概念:hadoop生態(tài)圈,第4章會詳細(xì)說明。
2. hadoop優(yōu)勢
高可靠性:hadoop底層維護(hù)多個(gè)數(shù)據(jù)副本,即使hadoop某個(gè)計(jì)算元素或存儲出現(xiàn)故障,也不會導(dǎo)致數(shù)據(jù)丟失。
高擴(kuò)展性:在集群間分配任務(wù)數(shù)據(jù),可方便的擴(kuò)展數(shù)以千計(jì)的節(jié)點(diǎn)(動態(tài)增加,動態(tài)刪除)
高效性:在MapReduce思想下,hadoop是并行工作的,以加快任務(wù)處理速度
高容錯(cuò)性:能夠自動將失敗的任務(wù)重新分配
3. hadoop的組成
hadoop1.0時(shí)代,MapReduce同時(shí)處理業(yè)務(wù)邏輯運(yùn)算和資源的調(diào)度(計(jì)算時(shí)分配多少內(nèi)存,在哪個(gè)服務(wù)器上運(yùn)行等等),耦合性較大。
2.0時(shí)代增加了Yarn。Yarn只負(fù)責(zé)資源的調(diào)度,MapReduce只負(fù)責(zé)運(yùn)算
3.0在組成上沒有變化,主要包括HDFS、YARN、MapReduce
3.1 HDFS架構(gòu)概述:任務(wù)存儲
HDFS:Haddoop Distributed File System,簡稱HDFS,是一個(gè)分布式文件系統(tǒng),主要用于解決數(shù)據(jù)的存儲問題
HDPS由三個(gè)單元組成:
NameNode(nn):存儲文件的元數(shù)據(jù)。比如文件目錄結(jié)構(gòu),文件名,文件屬性(生成時(shí)間、副本數(shù)、文件權(quán)限),以及每個(gè)文件的塊列表和塊所在的DataNode等。
DataNode(dn):簡單來講就是存放真實(shí)的數(shù)據(jù)。官方語言:在本地文件系統(tǒng)存儲文件塊數(shù)據(jù),以及塊數(shù)據(jù)和校驗(yàn)和。DataNode的數(shù)據(jù)都有進(jìn)行備份。
Secondary Node(2nn):每隔一段時(shí)間,對NameNode的元數(shù)據(jù)進(jìn)行備份,防止NameNode宕機(jī)后,不知道各個(gè)數(shù)據(jù)存儲在哪里
3.2 YARN架構(gòu)概述:資源調(diào)度
YARN:Yet Another Resource Negotiator,是hadoop的資源管理器
YARN由以下單元構(gòu)成:
ResourceManger(RM):負(fù)責(zé)管理整個(gè)集群的資源(內(nèi)存、cpu等),如下圖,由于每個(gè)NodeManger都是4G內(nèi)存,2GPU,ResourceManger就負(fù)責(zé)管理12G內(nèi)存,6GPU。
NodeManger(NM):負(fù)責(zé)管理單個(gè)節(jié)點(diǎn)服務(wù)器的資源,如下圖所示。
Container:容器,位于單個(gè)服務(wù)器節(jié)點(diǎn)之上,相當(dāng)于在服務(wù)器上虛擬出一個(gè)小型的虛擬機(jī),里面封裝了任務(wù)運(yùn)行所需要的資源,如內(nèi)存、cpu、磁盤、網(wǎng)絡(luò)等。
ApplicationMaster(AM):負(fù)責(zé)管理單個(gè)任務(wù)的運(yùn)行,位于Container里面,即任務(wù)運(yùn)行在Container這個(gè)小型虛擬機(jī)里
YARN運(yùn)行原理:當(dāng)客戶端進(jìn)行作業(yè)提交后(Job Submission),ResourceManger就會進(jìn)行資源的分配,安排其在某個(gè)NodeManger的某個(gè)Container中進(jìn)行運(yùn)行,一個(gè)任務(wù)可以運(yùn)行在多個(gè)Container上,多個(gè)Container可以分布在不同的NodeManger單點(diǎn)服務(wù)器上。
注:客戶端可以有多個(gè);集群上可以運(yùn)行多個(gè)ApplicationMaster;每個(gè)NodeManger上可以有多個(gè)Container。
3.3 MapReduce架構(gòu)概述:任務(wù)計(jì)算
MapReduce:主要負(fù)責(zé)任務(wù)的計(jì)算,其計(jì)算過程分為兩個(gè)階段:
Map階段:并行處理輸入數(shù)據(jù),如想要在服務(wù)器集群中查找hadoop的整套教學(xué)視頻,首先會進(jìn)行任務(wù)的派發(fā),讓每個(gè)服務(wù)器去尋找。
Reduce階段:對Map結(jié)果進(jìn)行匯總。有一臺匯總服務(wù)器會將Map中各個(gè)節(jié)點(diǎn)的結(jié)果進(jìn)行匯總,這樣就找到了結(jié)果。
3.4 HDFS、YARN、MapReduce三者的關(guān)系
4. 大數(shù)據(jù)技術(shù)生態(tài)體系
Sqoop 是一款開源的工具,主要用于在 Hadoop、Hive 與傳統(tǒng)的數(shù)據(jù)庫(MySQL)間進(jìn)行數(shù)據(jù)的傳遞,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(例如:MySQL,Oracle 等)中的數(shù)據(jù)導(dǎo)進(jìn)到 Hadoop 的 HDFS 中,也可以將 HDFS 的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫中。
flume:Flume 是一個(gè)高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume 支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù)。
kafka:Kafka 是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng)
spark:Spark 是當(dāng)前最流行的開源大數(shù)據(jù)內(nèi)存計(jì)算框架。可以基于 Hadoop 上存儲的大數(shù)據(jù)進(jìn)行計(jì)算。
Flink:Flink 是當(dāng)前最流行的開源大數(shù)據(jù)內(nèi)存計(jì)算框架。用于實(shí)時(shí)計(jì)算的場景較多
Oozie:Oozie 是一個(gè)管理 Hadoop 作業(yè)(job)的工作流程調(diào)度管理系統(tǒng)。
Hbase:HBase 是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫。HBase 不同于一般的關(guān)系數(shù)據(jù)庫,它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。
Hive:Hive 是基于 Hadoop 的一個(gè)數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供簡單的SQL查詢功能,可以將SQL語句轉(zhuǎn)換為 MapReduce任務(wù)進(jìn)行運(yùn)行。其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過類SQL語句快速實(shí)現(xiàn)簡單的 MapReduce統(tǒng)計(jì),不必開發(fā)專門的 MapReduce應(yīng)用,十分適合數(shù)據(jù)倉庫的統(tǒng)計(jì)分析。
ZoopKeeper:它是一個(gè)針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等。
推薦項(xiàng)目框架圖如下:
Hadoop 數(shù)據(jù)庫
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。