hdfs是hadoop distribute file system 的簡稱,也就是hadoop的乙個分布式檔案系統。
一、hdfs的主要設計理念
1、儲存超大檔案
這裡的「超大檔案」是指幾百mb、gb甚至tb級別的檔案。
2、最高效的訪問模式是 一次寫入、多次讀取(流式資料訪問)
hdfs儲存的資料集作為hadoop的分析物件。在資料集生成後,長時間在此資料集上進行各種分析。每次分析都將設計該資料集的大部分資料甚至全部資料,因此讀取整個資料集的時間延遲比讀取第一條記錄的時間延遲更重要。
3、執行在普通廉價的伺服器上
hdfs設計理念之一就是讓它能執行在普通的硬體之上,即便硬體出現故障,也可以通過容錯策略來保證資料的高可用。
二、hdfs的忌諱
1、將hdfs用於對資料訪問要求低延遲的場景
由於hdfs是為高資料吞吐量應用而設計的,必然以高延遲為代價。
2、儲存大量小檔案
hdfs中元資料(檔案的基本資訊)儲存在namenode的記憶體中,而namenode為單點,小檔案數量大到一定程度,namenode記憶體就吃不消了。
三、hdfs基本概念
資料塊(block):大檔案會被分割成多個block進行儲存,block大小預設為64mb。每乙個block會在多個datanode上儲存多份副本,預設是3份。
namenode:namenode負責管理檔案目錄、檔案和block的對應關係以及block和datanode的對應關係。
datanode:datanode就負責儲存了,當然大部分容錯機制都是在datanode上實現的。
四、hdfs基本架構圖
圖中有幾個概念需要介紹一下
rack 是指機櫃的意思,乙個block的三個副本通常會儲存到兩個或者兩個以上的機櫃中(當然是機櫃中的伺服器),這樣做的目的是做防災容錯,因為發生乙個機櫃掉電或者乙個機櫃的交換機掛了的概率還是蠻高的。
五、hdfs寫檔案流程
思考:在datanode執行create file後,namenode採用什麼策略給client分配datanode?
順序寫入三個datanode,寫入過程中有乙個datanode掛掉了,如何容錯?
client往datanode寫入資料時掛掉了,怎麼容錯?
六、hdfs讀檔案流程
HDFS原理分析 基本概念
hdfs是hadoop distribute file system 的簡稱,也就是hadoop的乙個分布式檔案系統。hdfs設計理念之一就是讓它能執行在普通的硬體之上,即便硬體出現故障,也可以通過容錯策略來保證資料的高可用。hdfs是hadoop distribute file system 的簡...
HDFS的基本概念
當一台計算機無法儲存海量資料時,就對他進行分割槽,分開在若干臺計算機上。然而普通的檔案系統無法勝任這一工作,於是,分布式檔案系統就應運而生。1.資料塊 每個硬碟都有預設的資料塊大小,大小不一。他們是磁碟讀寫資料的最小單位。hdfs中有同樣的概念,但是根據其海量資料的要求,一般乙個塊大小為 128 m...
HDFS學習 基本概念
hdfs是hadoop的核心之一,是乙個分布式檔案系統。所謂分布式檔案系統,就是多個節點通過網路形成乙個整體系統,它和單機檔案系統的最大區別在於,可以儲存乙個遠超單機儲存能力的檔案。其儲存方式大致就是 把檔案分隔成若干個份,存放在不同的節點上,再由乙個角色 hdfs中是namenode 負責記錄檔案...