認識HDFS分佈式文件系統

1.設計基礎目標node

  (1) 錯誤是常態,須要使用數據冗餘安全

   (2)流式數據訪問。數據批量讀而不是隨機速寫,不支持OLTP,hadoop擅長數據分析而不是事物處理。負載均衡

   (3)文件採用一次性寫屢次讀的模型,文件一旦寫入就沒法修改。因此一致性模型很是簡單。ssh

   (4)程序採用 數據就近 原則分配節點執行。(MapReduce)分佈式

2.hdf體系結構 oop

   

  hadfs設計十分簡單,在個人1個master和兩個slave節點的集羣中,經過jps,能夠查看在master節點上運行着SecondaryNameNode ,NameNode,JobTrackerspa

  在slave結點上運行着DataNode和TaskTracker進程
命令行

       1.NameNode:管理文件系統的命名空間,記錄每一個文件數據快在各個DataNode上的位置和副本信息,記錄命名空間內的改動或空間自己屬性的改動;協調客戶端對文件的訪問;設計

           NameNode使 用事物日誌記錄HDFS元數據的變化,使用映像文件存儲文件系統的命名空間3d

  2.DataNode:管理存儲節點,一次寫入,屢次讀取,不支持修改。文件由數據塊組成,包括文件映射,文件屬性。默認的數據塊大小爲64MB,數據塊儘可能散佈在各個節點中,負載均衡。

  3.讀取數據流程:客戶端要訪問HDFS中的文件,首先從NameNode獲取組成這個文件的數據塊位置列表,根據數據塊位置列表,知道存儲數據塊的DataNode,訪問DataNode獲取數據,NameNode並不參與數據實際傳輸

3.HDFS分佈式文件系統的可靠性 

  • 副本冗餘:在hdfs-site.xml中能夠設置副本的數量,DataNode啓動時,首先會遍歷本地的文件系統,產生一份hdfs數據塊和本地文件的對應關係列表(blockreport)彙報給namenode。
  • 機架策略:經過「機架感知」,將數據塊副本存儲在不一樣的機架中。
  • 心跳機制:NameNode週期性的從datanode接受心跳信號和塊報告。根據塊報告驗證元數據,副本數量、磁盤錯誤、節點宕機。
  • 安全模式:NameNode啓動時會通過「安全模式」階段,安全模式不會產生數據寫。能夠經過命令強制集羣進入安全模式。
  • 校驗和:文件創立的時候,每一個文件都會產生校驗和,校驗和會做爲一個隱藏文件保存在命名空間下,客戶端獲取數據時能夠檢查校驗和是否相同,從而法相數據塊是否損壞。
  • 回收站:HDFS提供回收站功能。
  • 元數據保護:映像文件和事物日誌是Namenode的核心數據。能夠配置爲擁有多個副本,副本會下降Name的處理速度,可是增長安全性。
  • 快照

 4.HDFS文件操做(命令行操做和API調用的方式)

    列出文件:hadoop dfs -ls 後可接上目錄

 文件上傳:hadoop dfs -put  本地文件  hdfs目錄

 文件複製到本地:hadoop dfs -get 

 文件刪除:hadoop dfs -rmr 目錄或文件名

 文件查看:hadoop dfs -cat 文件名

    查看HDFS的基本統計信息:hadoop dfsasmin -report

    進入/退出安全模式:hadoop dfsadmin -safemode enter/leave

5.增長節點

  • 在新節點安裝好hadoop
  • 把namenode的有關配置文件複製到該節點
  • 修改masters和slaves文件,增長該節點
  • 設施ssh免密碼進入該結點
  • 單獨啓動該節點上的datanode和tasktracker(hadoop-daemon.sh start datanode/tasktracker)
  • 運行start-balancer.sh進行負載均衡。
相關文章
相關標籤/搜索