【hadoop】7.HDFS-簡介

簡介

經過本教程您能夠學習到:node

  1. HDFS概念
  2. HDFS的組成
  3. HDFS文件塊大小

一、HDFS概念

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

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

之因此不適合修改,是由於HDFS底層存儲邏輯以及其應用目的決定的。首先其應用目的是用於海量的數據分析,這固然不會去對文件的讀、寫兩方面進行兼顧;再加上底層是將文件進行了分塊的(128M一塊),修改文件內容首先要合併、而後在寫入,又在切分,也許差強人意,可是真正的網盤應用不適合用他作的,推薦CEPH。oop

二、HDFS的組成

在Hadoop的簡介章節咱們已經介紹過這裏的知識了,這裏咱們在回顧一遍。學習

HDFS集羣包括,NameNode和DataNode以及Secondary Namenode。其中:大數據

  • NameNode負責管理整個文件系統的元數據,以及每個路徑(文件)所對應的數據塊信息。
  • DataNode 負責管理用戶的文件數據塊,每個數據塊均可以在多個datanode上存儲多個副本。
  • Secondary NameNode用來監控HDFS狀態的輔助後臺程序(輔助namenode),每隔一段時間獲取HDFS元數據的快照。

三、HDFS文件塊大小

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

二、HDFS的塊比磁盤的塊大,其目的是爲了最小化尋址開銷。若是塊設置得足夠大,從磁盤傳輸數據的時間會明顯大於定位這個塊開始位置所需的時間。於是,傳輸一個由多個塊組成的文件的時間取決於磁盤傳輸速率。視頻

在一般狀況下,尋址時間約爲10ms,而傳輸速率爲100MB/s,爲了使尋址時間僅佔傳輸時間的1%,咱們要將塊大小設置約爲100MB。默認的塊大小實際爲64MB,可是不少狀況下HDFS使用128MB的塊設置。教程

塊的大小:10ms100100M/s = 100Mhadoop

這條公式的原理是廣泛認同的定律:尋址時間爲傳輸時間的1%爲傳輸的最佳狀態。

也就說文件塊的大小設置原理是從尋址時間和傳輸時間而來的。

參考

本系列的文章參考資料來源有3個地方:

  1. 尚硅谷官方大數據教學視頻。
  2. 書籍《hadoop權威指南 第四版》
  3. 官方文檔。
相關文章
相關標籤/搜索