由於單機的儲存能力有限,難以儲存日益增長的資料,於是我們便將資料分配到多個機器中進行儲存,因此我們迫切需要一種系統方便管理和維護多台機器上的儲存資料的檔案,這就是分布式檔案系統。hdfs只是分布式檔案系統中的一種。
優點:1、高容錯性
(1)資料自動儲存多個副本。它通過增加副本的形式,提高容錯性。
(2)某個副本丟失後,它可以自動恢復
2、適合大資料處理
(1)資料規模:能夠處理資料規模達到gb、tb甚至pb級別的資料
(2)檔案規模:能處理百萬規模以上的檔案數量。
(3)可構建在廉價的機器上,通過多副本機制,提高可靠性
缺點:1、不適合低延時資料訪問,比如毫秒級的資料儲存是做不到的
2、無法高效的對大量小檔案進行儲存
3、不支援併發寫入,檔案隨機修改
架構主要由四部分組成:client、namenode、datanode、secondarynamenode
一、client
(1)檔案切分。檔案上傳hdfs的時候,client將檔案切分成乙個乙個的block,然後進行儲存
(2)與namenode進行互動,獲取檔案的儲存位置
(3)與datanode進行互動,讀取或者寫入資料
二、namenode
(1)管理hdfs的命名空間-namespace
(2)管理資料塊(block)的對映資訊
(3)配置副本策略,預設 3
(4)處理客戶端的請求
三、datanode
(1)儲存實際的資料塊
(2)執行資料塊的讀寫操作
四、secondarynamenode
(1)輔助namenode,分擔其工作量
(2)定期合併namenode的fsimage和edits,並推送給namenode
(3)在緊急情況輔助幫助恢復namenode
注:secondarynamenode並非namenode的熱備,在namenode宕機的時候並不能馬上替換namenode提供服務
(1)client通過distributed filesystem模組向namenode請求上傳檔案,namenode檢查目標檔案是否存在,父目錄是否存在。
(2)namenode響應client是否可以上傳。
(3)client請求第乙個block上傳到哪幾個伺服器。
(4)namenode返回三個datanode節點分別為datanode1、datanode2、datanode3。
(5)client通過fsdatadataoutputstream模組請求datanode1上傳資料,datanode1收到請求會呼叫datanode2,datanode2呼叫datanode3,將這個通訊管道建立完成。
(6)datanode1、datanode2、datanode3逐級應答客戶端
(7)客戶端開始往datanode1上傳第乙個block(先從磁碟讀資料放到乙個本地記憶體快取)以packet為單位,datanode1收到packet會傳給datanode2,datanode2會傳給datanode3
(8)當第乙個block傳輸完成後,client再次請求namenode上傳第二個block(重複步驟3-7)
(1)乙個block在datanode以檔案形式儲存在磁碟上,包括兩個檔案,乙個是資料本身,乙個是元資料報括資料塊的長度,塊資料的校驗和時間戳。
(2)datanode啟動後向namenode註冊,通過後,週期性(1小時)的向namenode上報所有的塊資訊。
(3)心跳是每3秒一次,心跳返回結果帶有namenode給該datanode的命令如複製塊資料到另一台機器,或刪除某個資料塊。如果超過10分鐘沒有收到某個datanode的心跳,則認為該節點不可用。
大資料生態之起源 Hadoop
說起大資料生態體系的起源,不得不提doug cutting,這位大資料技術始祖級的人物,在google的影響下為我們帶來了大資料生態體系中最原始也最重要的部分 hadoop。doug cutting,上圖居中著,身高一公尺八往上,其貌不揚,為人謙遜,因其兒子喜歡的玩具為技術發明命名。1985,畢業於...
大資料入門之Hadoop生態系統概述
近些年來,大資料這個詞頻繁出現在我們的生活中。那麼大資料到底是什麼呢,讓我們一起來看一下。通俗來說。大資料是乙個概念也是一門技術,是在以hadoop為代表的大資料平台框架上進行各種資料分析的技術。大資料報括了以hadoop和spark為代表的基礎大資料框架。還包括了資料探勘 資料分析 實時資料處理 ...
大資料入門之Hadoop基礎學習
資料採集引擎 sqoop flumezookeeper 實現hadoop的ha oozie 工作流引擎第一階段 scala程式語言 第二階段 spark core 基於記憶體 資料的計算 第三階段 spark sql 類似於mysql 的sql語句 第四階段 spark streaming 進行流式...