hadoop的兩大核心之一:HDFS總結

hadoop的兩大核心之一node

        海量數據的存儲(HDFS)linux


什麼是HDFS?安全

         hadoop distributed file system(hadoop分佈式文件系統)服務器

         是一種容許文件經過網絡在多臺主機上分享的文件系統,網絡

         可以讓多機器上的多用戶分享文件和存儲空間.架構

         特色:併發

                 1.通透性.讓其實是經過網絡來訪問文件的動做,由程序與用戶看來,分佈式

                                    就像是訪問本地的磁盤通常.oop

                 2.容錯性.即便系統中有某些節點脫機,總體來講系統仍然能夠持續運做spa

                                    而不會有數據損失.

         適用場景:

                 適用於一次寫入屢次查詢的狀況,不支持併發寫狀況,小文件不合適.

HDFS的架構

         主從結構

                 主節點,只有一個: namenode

                 從節點,有不少個: datanodes

         namenode負責:

                 接收用戶操做請求

                 維護文件系統的目錄結構

                 管理文件與block之間關係,block與datanode之間關係

         datanode負責:

                 存儲文件

                 文件被分紅block存儲在磁盤上

                 爲保證數據安全,文件會有多個副本

NameNode(能夠理解爲老大)

                 是整個文件系統的管理節點.它維護着整個文件系統的文件目錄樹,

                 文件/目錄的元信息和每一個文件對應的數據塊列表.接收用戶的操做請求.

         文件包括(這三個都保存在linux的文件系統中):

                 fsimage:元數據鏡像文件,存儲某一時段NameNode內存元數據信息.

                 edits:操做日誌文件.

                 fstime:保存最近一次checkpoint的時間

         工做特色:

                 1.Namenode始終在內存中保存metedata,用於處理"讀請求".

                 2.到有"寫請求"到來時,namenode會首先寫editlog到磁盤,

                     即向edits文件中寫日誌,成功返回後,纔會修改內存,而且向客戶端返回.

                 3.Hadoop會維護一個fsimage文件,也就是namenode中metedata的鏡像,

                     可是fsimage不會隨時與namenode內存中的metedata保持一致,

                     而是每隔一段時間經過合併edits文件來更新內容.Secondary namenode

                     就是用來合併fsimage和edits文件來更新NameNode的metedata的.


DataNode(能夠理解爲小弟)

                     提供真實文件數據的存儲服務.

                    最基本的存儲單位:block(文件塊),默認大小爲64M

 Secondary NameNode(能夠理解爲老大的助理)

                     HA(High Available)的一個解決方案.但不支持熱備.配置便可

                     默認在安裝在NameNode節點上,但這樣...不安全!

                 (生產環境中,建議分開安裝)

             執行過程:

                     從NameNode上下載元數據信息(fsimage,edits),而後把兩者合併,生成

                     新的fsimage,在本地保存,並將其推送到NameNode,替換舊的fsimage.

             工做流程:

                     1.secondarynamenode通知namenode切換edits文件

                     2.secondarynamenode從namenode得到fsimage和edits(經過http)

                     3.secondarynamenode將fsimage載入內存,而後開始合併edits

                     4.secondarynamenode將新的fsimage發回給namenode

                     5.namenodenamenode用新的fsimage替換舊的fsimage

hadoop的整個體系結構就是構建在RPC之上的

                     RPC(Remote Procedure Call),(RPC採用客戶機/服務器模式)

                     遠程過程調用協議,它是一種經過網絡從遠程計算機程序上請求服務,

                     而不須要了解底層網絡技術的協議.

         具體實現過程:

                   首先,客戶機調用進程發送一個有進程參數的調用信息到服務進程,

                   而後等待應答信息.在服務器端,進程保持睡眠狀態直到調用信息的到達爲止.

                   當一個調用信息到達,服務器得到進程參數,計算結果,發送答覆信息,

                   而後等待下一個調用信息,

              最後,客戶端調用進程接收答覆信息,得到進程結果,而後調用執行繼續進行.

         服務端提供的對象必須是一個接口,接口extends VersioinedProtocal

        客戶端可以的對象中的方法必須位於對象的接口中.

相關文章
相關標籤/搜索