hadoop 文件系統簡介

       本來是個輕鬆的週末,卻被一天半的講座填的滿滿的,除了抱怨之外其實自己所收穫的東西着實也有不少。之前一段時間學東西總是有些着急了,是時候靜下來慢下來思考和整理一下自己的思維了。

      關於hadoop,之前瞭解着實有些少,hadoop其實就是一種分佈式系統的架構。通過hadoop這個架構可以實現一些任務的分佈式計算。hadoop有自己的文件系統稱爲HDFS,該文件系統具有高度的容錯性,適合部署在廉價的極機器上。HDFS能提供較高數據吞吐量,非常適合大規模數據集的應用。

      由於一個HDFS系統可能由成百上千個節點構成,在每個節點中儲存着文件系統的部分數據,一旦其中某個節點發生錯誤就可能造成嚴重的後果,因此,錯誤檢查,快速和自動恢復是整個系統的核心。同時由於HDFS的目標是大規模數據的訪問,因此對於與用戶交互的要求可能沒有那麼高,爲了實現大規模數據的傳輸,對硬件約束方面可能作出一些修改,比如增加block的大小(將block由4k變爲16M,減少磁盤尋址的延遲)。另外在分佈式系統中一般要求計算跟靠近數據,這樣可能會減少甚至避免網絡阻塞和延遲,提升數據的吞吐量。

      HDFS採用NameNode和DataNode組織結構,一個節點上運行NameNode,其他的節點上運行DataNode。在nameNode上儲存MatarData其中包括文件屬性,真實數據儲存的DataNode映射等,同時NameNode 也負責文件的打開,讀寫等操作。另外namenode節點會收到來自其他節點的心跳,當收到心跳的時候表示該節點正常工作。由於HDFS是由java編寫的,所以nameNode和DataNode可以運行在普通的linux操作系統中。

     爲了保證數據的可靠性,需要在系統中進行一些數據的備份,備份的數量可以由用戶自己進行設置。在備份的時候需要選擇datanode,對於在同一個局域網中的datanode有更大的可能性同時被損壞,因此在選擇datanode的時候應該儘量選擇不同的集羣的datanode。一般而言,有3個備份的時候,有2個保存在本地集羣,其他一個副本放在其他集羣中。當進行數據訪問的時候應該儘量選擇距離較近的節點。

      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章