Hadoop到目前爲止發展已經有10餘年,版本通過無數次的更新迭代,目前業內你們把Hadoop大的版本分爲Hadoop1.0、Hadoop2.0、Hadoop3.0 三個版本。node
Hadoop版本剛出來的時候是爲了解決兩個問題:一是海量數據如何存儲的問題,一個是海量數據如何計算的問題。Hadoop的核心設計就是HDFS和 Mapreduce.HDFS解決了海量數據如何存儲的問題
, Mapreduce解決了海量數據如何計算的問題。HDFS的全稱:Hadoop Distributed File System。git
HDFS其實就能夠理解爲一個分佈式文件系統,能夠看如圖1所示有4個服務器是否是都有他本身的文件系統均可以進行存儲數據,假設每一個服務器的存儲空間存儲10G的數據。假設數據量很小的時候存儲10G的數據仍是ok的當數據量大於服務器的存儲空間時是否是單個服務器就無法存儲了。 咱們是否是能夠在服務器中部署一個
Hadoop
這樣就能構建出一個集羣(超級大電腦)。這樣就存儲 4*10=40G
的數據量,這樣咱們面向用戶時是否是隻有一臺超級大的電腦至關於一個分佈式文件系統。 程序員
HDFS是一個主從的架構、主節點只有一個NemeNode。從節點有多個DataNode。github
假設咱們這裏有5臺服務器每臺服務器都部署上Hadoop,咱們隨便選擇一臺服務器部署上
NameNode
剩下服務器部署上DataNode
。 面試
客戶端上傳文件時假設文件大小爲129M
HDFS默認切分的大小爲128M
這時就會產生出2個blk
NameNode去通知DataNode上傳文件(這裏有必定的策略),咱們就假設就將這幾個文件分別存儲在4個服務器上。爲什們要進行分別存儲在,假設DataNode服務器有一天忽然掛掉了咱們是否是還可經過DataNode4或2和3進行讀取數據,這樣是否是就防止數據丟失。安全
NameNode服務器
DataNode網絡
Hadoop2.73以前是64M以後改成了128M
SecondaryNamenode
週期性的到NameNode節點拉取Edtis和fsimage文件,將這兩個文件加入到內存進行 而後將這兩個文件加入到內存中進行合併產生新的fsimage發送給NameNode。架構
注意:早期版本app
上述給你們講解了簡單的HDFS架構,我在最後面留了一個小問題,我會在下期經過畫圖的方式給你們講解,我在這裏爲你們提供大數據的資料
須要的朋友能夠去下面GitHub去下載,信本身,努力和汗水總會能獲得回報的。我是大數據老哥,咱們下期見~~~
資源獲取 獲取Flink面試題,Spark面試題,程序員必備軟件,hive面試題,Hadoop面試題,Docker面試題,簡歷模板等資源請去 GitHub自行下載 https://github.com/lhh2002/Framework-Of-BigData Gitee 自行下載 https://gitee.com/li_hey_hey/dashboard/projects
-End-
企業是如何選擇技術棧來作離線數倉
原來Canal也能夠作HA?
Hive的調優你都知道那些?
萬字帶你深刻阿里開源的Canal工做原理
大數據老哥但願這篇文章能夠幫到你~
歡迎你們點個在看,分享至朋友圈
你我都成爲光發熱之人,在看在看在看~(瘋狂暗示!)