HDFS組件結(jié)構(gòu)圖解說:
創(chuàng)新互聯(lián)長期為數(shù)千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為息烽企業(yè)提供專業(yè)的成都網(wǎng)站設計、成都做網(wǎng)站,息烽網(wǎng)站改版等技術(shù)服務。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
1、如圖所示中,NameNode充當master角色,職責包括:管理文檔系統(tǒng)的命名空間(namespace);調(diào)節(jié)客戶端訪問到需要的文件(存儲在DateNode中的文件)
2、DataNodes充當slaves角色,通常情況下,一臺機器只部署一個Datenode,用來存儲MapReduce程序需要的數(shù)據(jù)
3、Namenode會定期從DataNodes那里收到Heartbeat和Blockreport反饋
4、Heartbeat反饋用來確保DataNode沒有出現(xiàn)功能異常;
5、Blockreport包含DataNode所存儲的Block集合
二、HDFS設計原則
1、文件以塊(block)方式存儲
2、每個塊帶下遠比多數(shù)文件系統(tǒng)來的大(預設64M)
3、通過副本機制提高可靠度和讀取吞吐量
4、每個區(qū)塊至少分到三臺DataNode上(一般,對namenode進行raid1配置,對datanode進行raid5配置)
5、單一 master (NameNode)來協(xié)調(diào)存儲元數(shù)據(jù)(metadata)
6、客戶端對文件沒有緩存機制 (No data caching)
三、NameNode(NN)
NameNode主要功能提供名稱查詢服務,它是一個jetty服務器(一個開源的servlet容器,嵌入式的web服務器)
NameNode保存metadate信息包括
文件owership和permissions
文件包含哪些塊
Block保存在哪個DataNode(由DataNode啟動時上報)
1、NameNode的metadate信息在啟動后會加載到內(nèi)存
2、metadata存儲到磁盤文件名為”fsp_w_picpath”
Block的位置信息不會保存到fsp_w_picpath
四.DataNode(DN)
保存Block
啟動DN線程的時候會向NN匯報block信息
hadoop fs -cmd
cmd :為具體的操作,基本上于UNIX的命令相同
args:參數(shù)
hdfs資源URL格式:scheme://bigdata/path
scheme:協(xié)議名,file或hdfs
bigdata:namenode主機名
path:路徑
eg:hdfs://localhost:9000/user/chunk/test.txt
假設已經(jīng)在core-site.xml設置了fs.default.name=hdfs://localhost:9000,
則僅使用/user/chunk/test.txt即可
hdfs命令示例:存放的數(shù)據(jù)以文件的形式存儲,使用絕對路徑來區(qū)分每個資源,在創(chuàng)建目錄來存儲資源時候要加/
#創(chuàng)建目錄
hadoop fs -mkidr /myFirstDir
#查看創(chuàng)建的目錄
hadoop fs -ls /myFirstDir #返回為空,目前還沒存放數(shù)據(jù)
#對當前創(chuàng)建目錄存放文件
hadoop fs -put /etc/shadow /myFirstDir
#查看目錄下的文件
hadoop fs -ls /myFirstDir
#復制文件到指定的位置
hadoop fs -get /hadoop目下的文件 /本地文件路徑
hadoop fs -get /myFirstDir/shadow /home/#下載shadow到/home目錄下
#新建一個空文件
hadoop fs -touchz /myFirstDir/newFile.txt
#將hadoop上某個文件重命名
hadoop fs -mv /myFirstDir/newFile.txt /myFirstDir/bigdata.txt
#將hadoop指定目錄下所有內(nèi)容保存為一個文件,同時down至本地
hadoop dfs -getmerge /myFirstDir/bigdata.txt /home/a
#查看文件里的內(nèi)容
hadoop fs -cat /myFirstDir/shadow
#查看最后1000字節(jié)數(shù)據(jù)
hadoop fs -tail /myFirsDir/shadow
#刪除文件\目錄
hadoop fs -rm -R /myFirstDir/shadow
hadoop fs -rm -R /myFirstDir/Secondary
#查看HDFS下的文件
hadoop fs -ls /
#查看集群數(shù)據(jù)的信息,登陸master節(jié)點查看
http://192.168.1.114:50070
管理與更新
#查看HDFS的基本統(tǒng)計信息
hadoop dfsadmin -report
#進出安全模式
hadoop dfsadmin -safemode enter
hadoop dfsadmin -safemode leave
#節(jié)點添加
添加一個新的DataNode節(jié)點,先在新加節(jié)點上安裝好Hadoop,
要和NameNode使用相同的配置(可以直接從NameNode復制),修改$HADOOP_HOME/conf/master文件,加入NameNode主機名。
然后在NameNode節(jié)點上修改$HADOOP_HOME/conf/slaves文件,加入新節(jié)點名,再建立新加節(jié)點無密碼的SSH連接,運行啟動命令為:
/bin/start-all.sh
#負載均衡
HDFS的數(shù)據(jù)在各個DataNode中的分布可能很不均勻,尤其是在DataNode節(jié)點出現(xiàn)故障或新增DataNode節(jié)點時。
新增數(shù)據(jù)塊時NameNode對DataNode節(jié)點的選擇策略也有可能導致數(shù)據(jù)塊分布不均勻。
用戶可以使用命令重新平衡DataNode上的數(shù)據(jù)塊的分布:
start-balancer.sh