HDFS(二)HDFS架构
NameNode(master) and DataNodes(slave)
一個(gè)HDFS集群包括一個(gè)NameNode和一些DataNode。NameNode管理了一個(gè)文件系統(tǒng)的命名空間,可以供客戶(hù)端訪問(wèn)這些文件。DataNode負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)。
NameNode暴露出namespace,允許用戶(hù)的數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)中。
一個(gè)文件會(huì)被切分成一個(gè)或者多個(gè)blocks,這些block會(huì)被存儲(chǔ)在一系列DataNode中。NameNode會(huì)執(zhí)行文件系統(tǒng)namespace操作,例如打開(kāi)文件、關(guān)閉文件、重命名文件或者目錄。NameNode存儲(chǔ)了block和DataNode的一個(gè)映射關(guān)系,block的副本數(shù),block的大小等。
例如一個(gè)文件a.txt的文件大小時(shí)150MB,blocksize=128MB,那么在文件系統(tǒng)中a.txt會(huì)被拆分成2個(gè)block,一個(gè)block1大小是128MB,另一個(gè)block2大小是22MB。那么block1存放在哪個(gè)DataNode上?block2存放在哪個(gè)DataNode上?這就是NameNode的作用,NameNode存放的就是這些元數(shù)據(jù)信息,即block與DataNode的映射關(guān)系,對(duì)用戶(hù)來(lái)說(shuō)時(shí)透明的。此外DataNode根據(jù)NameNode的具體指令來(lái)進(jìn)行block的創(chuàng)建刪除備份等。
NameNode和DataNode可以運(yùn)行在普通的機(jī)器上。HDFS使用java語(yǔ)言進(jìn)行開(kāi)發(fā),因此機(jī)器上應(yīng)該有jdk運(yùn)行環(huán)境,安裝完jdk,才可以運(yùn)行NameNode和DataNode節(jié)點(diǎn)。
通常情況下:一臺(tái)機(jī)器部署NameNode,其余機(jī)器部署DataNode,并不排斥多個(gè)DataNode運(yùn)行在同一個(gè)機(jī)器上。
總結(jié)
以上是生活随笔為你收集整理的HDFS(二)HDFS架构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HDFS(一) HDFS设计目标
- 下一篇: HDFS上传文件报错java.lang.