Distributed File System:(分佈式文件系統)node
由來:隨着數據量的愈來愈多,在一個操做系統管轄的範圍存不下了,那麼就須要分配到更多的操做系統管理的磁盤中,可是這樣不方便管理和維護,所以迫切須要一種系統來管理多臺機器上的文件,這就是分佈式文件系統。
linux
1.是一種容許文件經過網絡在多臺主機上分享的文件系統,可讓多機器上的多用戶分享文件和存儲空間。
shell
2.通透性:讓其實是經過網絡訪問文件的動做,由程序和用戶看來,就像是訪問本地的磁盤。
安全
3.容錯:即便系統中有的節點脫機,系統總體上仍是能夠持續運做而且不會有數據丟失。
網絡
4.分佈式文件有不少,hdfs只是其中的一種,
併發
5.適用於一次寫入,屢次查詢的狀況。不支持併發寫的狀況,不適合小文件。
分佈式
-----------------------HDFS--------------------
ide
1.HDFS中經常使用shelloop
1. hadoop fs –lsr /:遞歸查看hdfs根目錄下的內容spa
2. hadoop fs –mkdir /d1:在hdfs上建立文件夾/d1
3. hadoop fs –put /root/install.log /d1:將linux上文件上傳到hdfs特定路徑(若文件以存在,則提示已經存在,不會覆蓋,若目標路徑不存在,則會生成一個文件,而不是文件夾)
4. hadoop fs –get /d1/install.log .:路徑1,hdfs的源路徑,路徑2,linux特定路徑
從hdfs下載到linux下的特定目錄
5. hadoop fs –text /d1/install.log :直接查看hdfs上的文件
6. hadoop fs -rm /d1/install.log:刪除文件,若文件夾下還有內容:hadoop fs –rmr d1/
7. hadoop fs:查看幫助
8. hadoop fs –help ls\
9. 缺省目錄 hadoop fs -ls hdfs://hadoop:9000(「/」)
-----------------------------------------------兩大核心-------------------------------------------------------
1.NameNode:
1.是整個文件系統的管理節點。
2.維護整個文件系統的目錄結構樹。
3.接收用戶的操做請求。
4.存放HDFS文件系統的元信息(文件的目錄結構,具體的文件由哪些block組成),存放在fsp_w_picpath和edits中。
5.存放了文件與block塊的映射關係(filename-------block)----------存放在磁盤中------fsp_w_picpath
6.存放了block塊與物理機的映射關係(block---------machine):在啓動NameNode時建立,存放在內存中,這樣能夠加快訪問速度。
7.Fsp_w_picpath(文件系統的鏡像文件):存放的是nameNode的核心數據,能夠配置dfs.name.dir保證冗餘,達到安全
<name>dfs.name.dir</name>
<value>${hadoop.tmp.dir}/dfs/name</value>
8.edits:dfs.name.edits.dir value爲存放edits的位置。
保存文件上傳的事務過程。其中存放的是NameNode對文件系統的修改信息。
2.DataNode(多個)
1.提供真實數據的存儲,可是文件的機構和文件的元信息都是存放在NameNode中。
2.Block塊:劃分大了會形成資源的浪費,劃分小了,會頻繁的進行I/O操做
Block塊是最基本的存儲單位。默認是64M。
3.replication:多副本,冗餘,保證數據安全,默認是3個
3.SecondaryNameNode:
1.執行過程:從NameNode上下載元數據(fsp_w_picpath+edits),而後把兩者進行合併,生成新的fsp_w_picpath,在本地保存一份,並將一份推送到NameNode,同時重置etits。
這樣就避免edits膨脹,保證了namenode的效率,由於每次namenode啓動都會讀取edits文件內容,
2.SecondaryNameNode只存放的是合併後的fsp_w_picpath,可是這樣不安全,由於可能有的edits並未合併。