您好,登錄后才能下訂單哦!
這篇文章主要介紹“Hadoop NameNode是什么”,在日常操作中,相信很多人在Hadoop NameNode是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Hadoop NameNode是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
"運行Hadoop"是什么意思?
這意味著在網絡分布的不同服務器上運行一組守護進程(daemons)。這些守護進程有特殊的角色,一些僅存在于單個服務器上,一些則運行在多個服務器上。
這些角色都有誰?
NameNode(名稱節點)
DataNode(數據節點)
Secondary NameNode(次名稱節點)
JobTracker(作業跟蹤節點)
TaskTracker(任務跟蹤節點)
分布式存儲采用了神馬結構?
分布式存儲系統被稱為Hadoop文件系統,或簡稱為HDFS。
Hadoop Distribution File System
Hadoop在分布式計算與分布式存儲中都采用了主/從(master/slave)結構。
NameNode是什么,干啥的?
Hadoop守護進程中最重要的一個。
NameNode位于HDFS的主端,它指導從端的DataNode執行底層的I/O任務。
NamNode跟蹤文件如何被分割成文件塊,而這些塊又被哪些節點存儲,以及分布式文件系統的整體運行狀態是否正常。
運行NameNode消耗大量的內存和I/O資源。因此,為了減輕機器的負債,駐留NameNode的服務器通常不會存儲用戶數據或者執行MapReduce程序的計算任務。這意味著NameNode服務器不會同時是DataNode或者TaskTracker
不過NameNode的重要性也帶來了一個負面影響-Hadoop集群的單點失效。對于任何其他的守護進程,如果它們所駐留的節點發生軟件或硬件失效,Hadoop集群很可能還會繼續平穩運行,不然你還可以快速重啟這個節點。但這樣的方法并不適用于NameNode。
DataNode是什么,干啥的?
每個從節點會駐留一個DataNode守護進程,來執行分布式文件系統的繁重工作-將HDFS數據塊讀取或者寫入到本地文件系統的實際文件中。
當對HDFS文件進行讀寫時,文件被分割為多個塊,由NameNode告知客戶端每個數據塊駐留在哪個DataNode。客戶端直接與DataNode守護進程通信,來處理與數據塊相對應的本地文件。而后,DataNode會與其他DataNode進行通信,復制這些數據塊以實現冗余。
NameNode和DataNode交互?
在HDFS中交互,NameNode跟蹤文件的元數據。
NameNode持有的文件的元數據是?
描述系統中所包含的文件以及每個文件如何被分割為數據塊。DataNode提供數據塊的備份存儲,并持續不斷地向NameNode報告,以保持元數據為最新狀態。
DataNode上的文件存儲是怎么存的?
在HDFS上文件是被分成數據塊存儲的,默認大小(64MB),由NameNode指定這些文件塊存儲在哪些DataNode中,每個文件塊默認有3個副本,確保如果一個DataNode垮掉,數據不會丟失。初始化時,每個DataNode將當前存儲的數據塊告知NameNode,初始化完成之后,DataNode也會不斷的更新本地信息給NameNode,并接收指令。
Secondary NameNode是干什么的?
Secondary NameNode (SNN)是一個用于監測HDFS集群狀態的輔助守護進程。就像NameNode一樣,每個集群有一個SNN,它通常也獨占一臺服務器,該服務器不會運行其他的DataNode或TaskTacker守護進程。SNN與NameNode的不同在于它不接收或記錄HDFS的任何實時變化。相反,它與NameNode通信,根據集群所配置的時間間隔獲取HDFS元數據快照。
如前所述,NameNode是Hadoop集群的單一故障點,而SNN的快照可以有助于減少停機的時間并降低數據丟失的風險。然而,NameNode的失效處理需要人工干預,即手動地重新配置集群,將SNN用作主要得NameNode。
JobTracker是什么?
JobTracker守護進程是應用程序和Hadoop之間的紐帶。
JobTracker做了些什么?
一旦提交代碼到集群上,JobTracker就會確定執行計劃,包括決定處理哪些文件、為不同的任務分配節點以及監控所有任務的運行。如果任務失敗,JobTacker將自動重啟任務,但所分配的節點可能會不同,同時受到預定義的重試次數限制。
一個Hadoop集群有幾個JobTracker的守護進程?
每個Hadoop集群只有一個JobTracker守護進程,它通常運行在服務器集群的主節點上。
TaskTracker是什么?
與存儲的守護進程一樣,計算的守護進程也遵循主/從架構:JobTracker作為主節點,檢測MapReduce作業的整個執行過程,同時,TaskTracker管理各個任務在每個從節點上的執行情況。
每個TaskTracker負責執行由JobTracker分配的單項任務。雖然每個從節點上僅有一個TaskTracker,但每個TaskTracker可以生產多個JVM(Java虛擬機)來并行地處理許多map或reduce任務。
TaskTracker的一個職責是持續不斷地與JobTracker通信。如果JobTracker在指定得時間內沒有收到來自TaskTracker的"心跳",它會假定TaskTracker已經崩潰了,進而重新提交相應的任務到集群中的其他節點。
JobTracker是如何調用TaskTracker的?
JobTracker和TaskTracker的交互,當客戶端調用JobTracker來啟動一個數據處理作業時,JobTacker會將工作切分,并分配不同的map和reduce任務到集群中的每個TaskTracker上。
一個典型的Hadoop拓撲結構特點是?
在主節點上運行NameNode和JobTracker的守護進程,并使用獨立的節點運行SNN以防主節點失效。在小型集群中,SNN也可以駐留在某一個從節點上,而在大型集群中,連NameNode和JobTracker都會分別駐留在兩臺機器上。每個從節點均駐留一個DataNode和TaskTracker,從而在存儲數據的同一節點上執行任務。
到此,關于“Hadoop NameNode是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。