HDFS的幾個(gè)角色
1.NameNode老大:它有兩個(gè)狀態(tài)active(活動(dòng)的),standby(備份狀態(tài))漓拾。它負(fù)責(zé)記錄元數(shù)據(jù)-描述數(shù)據(jù)的數(shù)據(jù)油湖。它保存了文件名,文件切了多少塊,每塊備份了多少份鲤拿,每一份放在哪臺(tái)機(jī)器上胶台。
2.DataNode小弟:存儲(chǔ)數(shù)據(jù)并記錄文件塊位置歼疮。
3.Block文件塊:
hadoop1.0:64MB hadoop2.0:128MB(這個(gè)值是固定的,不會(huì)高于這個(gè)值)
4SecondaryNameNode
NameNode的小秘诈唬,幫助NameNode干一些其他的事情韩脏。分擔(dān)NameNode的壓力。(在正式安裝完全分布式就不需要它)
HDFS的優(yōu)點(diǎn)
可以存儲(chǔ)超大文件(無限拓展)
高容錯(cuò)铸磅,支持?jǐn)?shù)據(jù)丟失的自動(dòng)恢復(fù)
可以構(gòu)建在廉價(jià)機(jī)上
HDFS缺點(diǎn)
1不適合存大量小文件:存進(jìn)一個(gè)文件赡矢,一定會(huì)記錄一條元數(shù)據(jù)信息杭朱。文件又小又多會(huì)導(dǎo)致NameNode的元數(shù)據(jù)信息特別多,壓力變大〈瞪ⅲ現(xiàn)在的Hadoop對(duì)文件進(jìn)行了優(yōu)化弧械,不記錄小文件的信息,只記錄小文件所在的文件夾的目錄空民。
2做不到低延遲訪問刃唐。
3不支持超強(qiáng)事務(wù)。
4不支持行級(jí)別的增刪改:這樣會(huì)導(dǎo)致所有節(jié)點(diǎn)重新調(diào)整大小界轩。
SecondaryNameNode的作用
幫NameNode合并fsimage和edits唁桩。
以后不用SecondaryNameNode。用雙機(jī)熱備耸棒,不用SecondaryNameNode荒澡。
Block備份如何放置
第一份:如果該文件本身從Hadoop集群中的某個(gè)節(jié)點(diǎn)上傳,那么第一份存放在上傳節(jié)點(diǎn)中逐工,如果從Hadoop集群之外上傳铡溪,那么存放在相對(duì)不太忙,負(fù)載較小的節(jié)點(diǎn)上泪喊。
第二份:放在與第一份所放置的節(jié)點(diǎn)相鄰機(jī)架上的某個(gè)節(jié)點(diǎn)上棕硫。
第三份:放在與第二份所在節(jié)點(diǎn)的機(jī)架上的另外一臺(tái)機(jī)器上。
三份以上袒啼,放置在負(fù)載相對(duì)較小的節(jié)點(diǎn)上哈扮。
第一塊是主要訪問節(jié)點(diǎn),只要它不死蚓再,直接從它拿數(shù)據(jù)滑肉。存好了、備份之后就不必再占用它了摘仅。讓其他機(jī)架的空閑機(jī)器復(fù)制到自己的機(jī)器上靶庙。
HDFS基本Shell操作
創(chuàng)建文件夾(不支持多級(jí)創(chuàng)建):
hadoop fs -mkdir /xxx
查看目錄:
hadoop fs -ls /xxx
遞歸查看多級(jí)目錄:
hadoop fs -lsr /xxx
上傳文件到HDFS:
hadoop fs -put xxx.txt /xxx
下載文件到本地當(dāng)前目錄:
hadoop fs -get /xxx/xxx/xxx.txt
刪除文件:
hadoop fs -rm /xxx/xxx/xxx.txt
刪除文件夾(文件夾必須為空):
hadoop fs -rmdir /xxx/xxx
強(qiáng)制刪除文件夾或文件
Hadoop fs -rm -r /xxx