Hadoop之HDFS概述

1、HDFS產生背景及定義服務器

  一、HDFS產生背景架構

    隨着數據量愈來愈大,在一個操做系統存不下全部的數據,那麼就分配到更多的操做系統管理的磁盤中,可是不方便管理和維護,迫切須要一種系統來管理多臺機器上的文件,這就是分佈式文件管理系統。HDFS只是分佈式文件管理系統中的一種併發

  二、HDFS定義app

    HDFS(Hadoop Distributed File System),它是一個文件系統,用於存儲文件,經過目錄樹來定位文件;其次,它是分佈式的,由不少服務器聯合起來實現其功能,集羣中的服務器有各自的角色。分佈式

    HDFS的使用場景:適合一次寫入,屢次讀出的場景,且不支持文件的修改。適合用來作數據分析,並不適合用來作網盤應用。oop

 

2、HDFS優缺點大數據

  一、優勢spa

    1)高容錯性操作系統

      a、數據自動保存多個副本。它經過增長副本的形式,提升容錯性。線程

      

      b、某個副本丟失之後,它能夠自動恢復。

      

    2)適合處理大數據

      a、數據規模:可以處理數據規模達到GB、TB、甚至PB級別的數據

      b、文件規模:可以處理百萬規模以上的文件數量,數量至關之大。

    3)可構建在廉價機器上,經過多副本機制,提升可靠性。

  二、缺點

    1)不適合低延時數據訪問,好比毫秒級的存儲數據,是作不到的。

    2)沒法高效的對大量小文件進行存儲。  

      a、存儲大量小文件的話,它會佔用NameNode大量的內存來存儲文件目錄和塊信息。這樣是不可取的,由於NameNode的內存老是有限的。

      b、小文件存儲的尋址時間會超過讀取時間,它違反了HDFS的設計目標。

    3)不支持併發寫入、文件隨機修改。

      a、一個文件只能有一個寫,不容許多個線程同時寫;

      b、僅支持數據append(追加),不支持文件的隨機修改。

 

3、HDFS架構組成

一、NameNode(nn):在整個集羣中是Master,它是一個主管、管理者。

  1)管理HDFS的名稱空間;

  2)配置副本策略

  3)管理數據塊(Block)映射信息

  4)處理客戶端讀寫請求

二、DataNode(dn):它是Slave,NameNode下達命令,DataNode執行實際的操做。

  1)存儲實際的數據塊;

  2)執行數據塊的讀/寫操做

三、Client:客戶端

  1)文件切分。文件上傳HDFS的時候,Client將文件切分紅一個一個的Block,而後進行上傳

  2)與NameNode交互,獲取文件的位置信息

  3)與DataNode交互,讀取或者寫入數據

  4)Client提供一些命令來管理HDFS,好比NameNode格式化

  5)Client能夠經過一些命令來訪問HDFS,好比對HDFS增刪查改操做

四、Secondary NameNode:並不是NameNode的熱備。當NameNode掛掉的時候,它並不能立刻替換NameNode並提供服務。

  1)輔助NameNode,分擔其工做量,好比按期合併Fsimage和Edits,並推送給NameNode

  2)在緊急狀況下,可輔助恢復NameNode。

 

4、HDFS文件塊大小

  HDFS的文件在物理上是分塊存儲(Block),塊的大小能夠經過配置參數(dfs.blocksize)來設定,默認大小在Hadoop2.x版本中是128M,老版本中是64M。

  

  思考:爲何塊的大小不能設置過小,也不能設置太大?

  1)HDFS的塊設置過小會增長尋址時間,程序一直在找塊的開始位置;

  2)若是塊設置的太大,從磁盤傳輸數據的時間會明顯大於定位這個塊開始位置所需時間,致使程序在處理這塊數據時,會很是慢。

  總結:HDFS塊的大小設置主要取決於磁盤傳輸速率。

相關文章
相關標籤/搜索