hdfs深刻:0三、hdfs的架構以及副本機制和block塊存儲

HDFS分佈式文件系統設計目標

一、            硬件錯誤  因爲集羣不少時候由數量衆多的廉價機組成,使得硬件錯誤成爲常態node

二、            數據流訪問  全部應用以流的方式訪問數據,設置之初即是爲了用於批量的處理數據,而不是低延時的實時交互處理linux

三、            大數據集   典型的HDFS集羣上面的一個文件是以G或者T數量級的,支持一個集羣當中的文件數量達到千萬數量級數據庫

四、            簡單的相關模型  假定文件是一次寫入,屢次讀取的操做緩存

五、            移動計算比移動數據便宜   一個應用請求的計算,離它操做的數據越近,就越高效服務器

六、            多種軟硬件的可移植性網絡

三、HDFS的來源

HDFS起源於Google的GFS論文(GFS,Mapreduce,BigTable爲google的舊的三駕馬車)架構

       發表於2003年10月分佈式

       HDFS是GFS的克隆版oop

Hadoop  Distributed  File  system性能

       易於擴展的分佈式文件系統

       運行在大量普通廉價機器上,提供容錯機制

       爲大量用戶提供性能不錯的文件存取服務

四、HDFS的架構圖之基礎架構

 

 

 

一、NameNode是一箇中心服務器,單一節點(簡化系統的設計和實現),負責管理文件系統的名字空間(namespace)以及客戶端對文件的訪問

二、文件操做,namenode是負責文件元數據的操做,datanode負責處理文件內容的讀寫請求,跟文件內容相關的數據流不通過Namenode,只詢問它跟哪一個dataNode聯繫,不然NameNode會成爲系統的瓶頸

三、副本存放在哪些Datanode上由NameNode來控制,根據全局狀況做出塊放置決定,讀取文件時NameNode儘可能讓用戶先讀取最近的副本,下降讀取網絡開銷和讀取延時

四、NameNode全權管理數據庫的複製,它週期性的從集羣中的每一個DataNode接收心跳信號和狀態報告,接收到心跳信號意味着DataNode節點工做正常,塊狀態報告包含了一個該DataNode上全部的數據列表

注:元數據不只保存在內存中,還保存一份在磁盤中,防止意外斷電等致使數據丟失。

五、hdfs的架構之文件的文件副本機制以及block塊存儲

block塊的大小能夠經過hdfs-site.xml當中的配置文件進行指定:

<property>

        <name>dfs.blocksize</name>

        <value>塊大小 以Byte字節爲單位</value>//只寫數值就能夠 默認:134217728B,即128MB

    </property>

<property>
  <name>dfs.replication</name>
  <value>3</value> //block的副本數量設置
</property>

5.一、抽象成數據塊的好處

    1. 一個文件有可能大於集羣中任意一個磁盤 
      10T*3/128 = xxx塊 2T,2T,2T 文件方式存—–>多個block塊,這些block塊屬於一個文件
    2. 使用塊抽象而不是文件能夠簡化存儲子系統
    3. 塊很是適合用於數據備份進而提供數據容錯能力和可用性

5.二、塊緩存

block塊緩存:能夠將咱們的block塊緩存到內存當中,咱們在執行一些MR計算的時候,能夠直接從內存當中獲取數據,比較快,特別適用於一些小表join大表的狀況。

5.三、hdfs的文件權限驗證

hdfs的權限驗證:採用的是linux相似的權限校驗機制,防止好人作錯事,不能阻止壞人乾乾事,hdfs相信你告訴我你是誰,你就是誰。

相關文章
相關標籤/搜索