Hadoop组件概览
生活随笔
收集整理的這篇文章主要介紹了
Hadoop组件概览
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
先從概念層次介紹下Hadoop的各個(gè)組件,下一部分會(huì)深入Hadoop的每個(gè)組件,并從實(shí)戰(zhàn)層次講解。
一、Hadoop構(gòu)造模塊
? ? ?運(yùn)行Hadoop的意思其實(shí)就是運(yùn)行一組守護(hù)進(jìn)程(daemons),每個(gè)進(jìn)程都有各自的角色,有的僅運(yùn)行在單個(gè)服務(wù)器上,有的則運(yùn)行在集群多個(gè)服務(wù)器上,它們包括:- NameNode
- Secondary NameNode
- DataNode
- JobTracker
- TaskTracker
二、NameNode
? ? ?前面說(shuō)了,NameNode屬于HDFS,它位于HDSF的主端,由它來(lái)指導(dǎo)DataNode執(zhí)行底層I/O任務(wù)。NameNode相當(dāng)于HDFS的書(shū)記員,它會(huì)跟蹤文件如何被分割成文件塊,而這些塊又是被哪些節(jié)點(diǎn)存儲(chǔ),以及分布式文件系統(tǒng)整體運(yùn)行狀態(tài)是否正常等。 ? ? ?運(yùn)行NameNode會(huì)消耗大量?jī)?nèi)存和IO資源,因此為減輕機(jī)器負(fù)載,駐留NameNode的服務(wù)器通常不會(huì)存儲(chǔ)用戶(hù)數(shù)據(jù)或者進(jìn)行MapReduce計(jì)算任務(wù),這也就意味著一臺(tái)NameNode服務(wù)器不會(huì)同時(shí)是DataNode或者TaskTracker服務(wù)器。 ? ? ?不過(guò)NameNode的重要性也帶來(lái)了一個(gè)負(fù)面影響---單點(diǎn)故障。對(duì)于其他任何守護(hù)進(jìn)程,其駐留節(jié)點(diǎn)發(fā)生軟件或硬件故障,Hadoop集群還可平穩(wěn)運(yùn)行,但是對(duì)于NameNode來(lái)說(shuō),則不可以。不過(guò)后面版本(2.0以后的版本)已經(jīng)解決此問(wèn)題。
三、DataNode
? ? ?集群中每一個(gè)從節(jié)點(diǎn)都會(huì)駐留一個(gè)DataNode的守護(hù)進(jìn)程,用來(lái)將HDFS數(shù)據(jù)庫(kù)寫(xiě)入或讀取到本地文件系統(tǒng)中。當(dāng)對(duì)HDFS文件進(jìn)行讀寫(xiě)時(shí),文件會(huì)被分割成多個(gè)塊,有NameNode告知客戶(hù)端每個(gè)數(shù)據(jù)駐留在哪個(gè)DataNode,客戶(hù)端直接與DataNode進(jìn)行通信,DataNode還會(huì)與其它DataNode通信,復(fù)制這些塊以實(shí)現(xiàn)冗余。 ? ? ? NameNode跟蹤源數(shù)據(jù),DataNode提供數(shù)據(jù)塊的備份存儲(chǔ)并持續(xù)不斷地向NameNode報(bào)告,以保持元數(shù)據(jù)最新?tīng)顟B(tài)。
四、 Secondary NameNode ? ? ?SNN是一個(gè)監(jiān)測(cè)HDFS的輔助進(jìn)程,它只與NameNode進(jìn)程通信,根據(jù)集群配置時(shí)間間隔獲取HDFS元數(shù)據(jù)快照,我們知道HDFS有單點(diǎn)故障,SNN快照有助于減少宕機(jī)而導(dǎo)致的數(shù)據(jù)丟失風(fēng)險(xiǎn),其一般也單獨(dú)占一臺(tái)服務(wù)器。 五、 JobTracker ? ? ?它是應(yīng)用程序和Hadoop之間的紐帶,監(jiān)控MapReduce作業(yè)執(zhí)行過(guò)程,一旦提交代碼到集群,JobTracker就會(huì)確定執(zhí)行計(jì)劃,包括決定處理哪些文件、為不同的任務(wù)分配節(jié)點(diǎn)以及監(jiān)控所有任務(wù)運(yùn)行。每個(gè)集群只有一個(gè)JobTracker進(jìn)程,一般運(yùn)行在主節(jié)點(diǎn)。 六、 TaskTracker ? ? ?TaskTracker管理各個(gè)任務(wù)在從節(jié)點(diǎn)上的執(zhí)行情況。它負(fù)責(zé)執(zhí)行有JobTracker分配的單項(xiàng)任務(wù),雖然每個(gè)從節(jié)點(diǎn)只有一個(gè)TaskTracker運(yùn)行,但每個(gè)TaskTracker可以生產(chǎn)多個(gè)JVM來(lái)并行地處理多Map或Reduce任務(wù)。TaskTracker的一個(gè)職責(zé)是不斷的與JobTracker通信,即“心跳”。
下面再來(lái)整體看一下整個(gè)Hadoop拓?fù)浣Y(jié)構(gòu)
下面就是一個(gè)典型的Hadoop拓?fù)鋱D,主動(dòng)結(jié)構(gòu),NameNode和JobTracker位于主端,DataNode和TaskTracker位于從端。
客戶(hù)端向JobTracker發(fā)送Job任務(wù),JobTracker會(huì)把Job切分,并分配不同的Map和Reduce任務(wù)到每一臺(tái)機(jī)器。
想更深一步了解HDFS相關(guān)組件,請(qǐng)參考我的另一篇文章:《HDFS架構(gòu)設(shè)計(jì)》
總結(jié)
以上是生活随笔為你收集整理的Hadoop组件概览的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用 Android 开发 MQTT 客
- 下一篇: java word书签_java 操作w