HDFS(hadoop分佈式文件系統)--------總結

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  .:路徑1hdfs的源路徑,路徑2linux特定路徑

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.editsdfs.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並未合併。

相關文章
相關標籤/搜索