經過本教程您能夠學習到:node
HDFS,它是一個文件系統,用於存儲文件,經過目錄樹來定位文件;其次,它是分佈式的,由不少服務器聯合起來實現其功能,集羣中的服務器有各自的角色。服務器
HDFS的設計適合一次寫入,屢次讀出的場景,且不支持文件的修改。適合用來作數據分析,並不適合用來作網盤應用。分佈式
之因此不適合修改,是由於HDFS底層存儲邏輯以及其應用目的決定的。首先其應用目的是用於海量的數據分析,這固然不會去對文件的讀、寫兩方面進行兼顧;再加上底層是將文件進行了分塊的(128M一塊),修改文件內容首先要合併、而後在寫入,又在切分,也許差強人意,可是真正的網盤應用不適合用他作的,推薦CEPH。oop
在Hadoop的簡介章節咱們已經介紹過這裏的知識了,這裏咱們在回顧一遍。學習
HDFS集羣包括,NameNode和DataNode以及Secondary Namenode。其中:大數據
一、HDFS中的文件在物理上是分塊存儲(block),塊的大小能夠經過配置參數( dfs.blocksize)來規定,默認大小在hadoop2.x版本中是128M,老版本中是64M;設計
二、HDFS的塊比磁盤的塊大,其目的是爲了最小化尋址開銷。若是塊設置得足夠大,從磁盤傳輸數據的時間會明顯大於定位這個塊開始位置所需的時間。於是,傳輸一個由多個塊組成的文件的時間取決於磁盤傳輸速率。視頻
在一般狀況下,尋址時間約爲10ms,而傳輸速率爲100MB/s,爲了使尋址時間僅佔傳輸時間的1%,咱們要將塊大小設置約爲100MB。默認的塊大小實際爲64MB,可是不少狀況下HDFS使用128MB的塊設置。教程
塊的大小:10ms100100M/s = 100Mhadoop
這條公式的原理是廣泛認同的定律:尋址時間爲傳輸時間的1%爲傳輸的最佳狀態。
也就說文件塊的大小設置原理是從尋址時間和傳輸時間而來的。
本系列的文章參考資料來源有3個地方: