HDFS概念筆記

一、基本概念

1、HDFS介紹

HDFS是Hadoop Distribute File System(分布式文件系統(tǒng))的簡稱。是Hadoop核心組件之一,作為最底層的分布式存儲服務(wù)而存在。

解決問題:大數(shù)據(jù)存儲。是橫跨在多臺計算機(jī)上的存儲系統(tǒng)。分布式文件系統(tǒng)為存儲和處理超大規(guī)模數(shù)據(jù)提供所需的擴(kuò)展能力。

傳統(tǒng)存儲模式到HDFS的歷程:

1)傳統(tǒng)存儲,上傳/下載耗時;

2)傳統(tǒng)存儲遇到存儲瓶頸時,縱向擴(kuò)展加磁盤加內(nèi)存,但始終有上限;

3)繼而進(jìn)行橫向擴(kuò)展,增加服務(wù)器。對文件分割成更小的塊,每個塊放到不同的服務(wù)器進(jìn)行分布式存儲(datanode)。這解決了上傳的問題,但是讀取文件成本變高。所以需要一個記錄文件切割及保存在哪里的相關(guān)信息(namenode);

4)且如果其中一個宕機(jī)掛掉了,那么就無法讀取。為了解決單點故障,可以把文件進(jìn)行備份存儲(snn)。

datanode,存放數(shù)據(jù)的

namenode,記錄數(shù)據(jù)的位置

snn,數(shù)據(jù)備份

整個集群加起來就是HDFS

2、HDFS設(shè)計目標(biāo)

1、硬件故障時常態(tài)。故障的檢測和自動快速恢復(fù);

2、HDFS被設(shè)計成時候批量處理,而不是用戶交互式的。注重數(shù)據(jù)訪問的高吞吐量;

3、支持大文件,GB到TB級別;

4、write-one-red-many,一次寫入多次讀取;

5、移動計算的代價比移動數(shù)據(jù)的代價低;

6、在異構(gòu)的硬件和軟件平臺上的可移植性。

二、HDFS重要特性

首先它是一個文件系統(tǒng),用于存儲文件,通過統(tǒng)一的命名空間目錄樹來定位文件。其次它是分布式的,有很多服務(wù)器聯(lián)合起來實現(xiàn)其功能,集群中的服務(wù)器有各自的角色,

1、master/slave架構(gòu)(主從架構(gòu))

一般HDFS集群是有一個namenode和一定數(shù)量的DataNode組成,NameNode是集群主節(jié)點,DataNode是集群從節(jié)點。2種角色各司其事,協(xié)調(diào)完成分布式文件存儲服務(wù)。

2、分塊存儲

HDFS的文件在物理上是分塊存儲的。塊的大小通過配置參數(shù)來決定。默認(rèn)是128M(Hadoop2.x版本)。

3、名字空間(NameSpace)

HDFS支持傳統(tǒng)的層次型文件組織結(jié)構(gòu)。NameNode負(fù)責(zé)維護(hù)文件系統(tǒng)的名字空間。任何文件系統(tǒng)名字空間或?qū)傩缘男薷亩紝⒈籲amenode記錄下來。HDFS會給客戶端提供一個統(tǒng)一抽象目錄樹,客戶端通過路徑來訪問文件,例如:hdfs://namede:port/dir-a/dir-b/dir-c/file.data。

4、Namenode元數(shù)據(jù)管理

元數(shù)據(jù):目錄機(jī)構(gòu)及文件分塊位置信息叫元數(shù)據(jù)。namenode負(fù)責(zé)維護(hù)整個HDFS文件系統(tǒng)的目錄樹結(jié)構(gòu),以及每個文件對于的block快信息(block的id,所做的DataNode服務(wù)器)

5、DataNode數(shù)據(jù)存儲

文件的各個block具體存儲管理有DataNode節(jié)點承擔(dān)。每個block都可以在多個DataNode上。DataNode需要定時想namenode匯報自己持有的block信息。存儲多個副本(副本數(shù)量也可以通過參數(shù)設(shè)置dfs.replication,默認(rèn)是3)。注意:常說的副本個數(shù)一般要連同自己本身

6、副本機(jī)制

為了容錯,文件的所有block都會有副本。每個文件的block大小和副本系數(shù)都是可配置的。應(yīng)用程序可以指定某個文件的副本數(shù)據(jù)。副本系統(tǒng)可以在文件創(chuàng)建的時候指定,也可以在之后改變。

7、一次寫入,多次讀出

HDF不支持文件的修改。正因為如此,HDFS適合用來做大數(shù)據(jù)分析的底層存儲服務(wù),并不適用來做網(wǎng)盤等。因為修改不方便,延遲大,網(wǎng)絡(luò)開銷大,成本太高。

三、HDFS基本操作

1、Shell命令行客戶端

hadoop fs <args>

文件系統(tǒng)shell包括與Hadoop已經(jīng)Hadoop支持的其他系統(tǒng)(如本地FS,HFTP FS,S3 FS等)直接交互的各類類似shell的命令。

四、HDFS基本原理

1、NameNode

1)是HDFS的核心

2)又稱為Master

3)NameNode僅存儲HDFS的元數(shù)據(jù):文件系統(tǒng)中所有文件的目錄樹,并跟蹤給整個集群中的文件

4)NameNode不存儲實際數(shù)據(jù)或數(shù)據(jù)集。數(shù)據(jù)本身實際存儲在DataNodes中。

5)namenode知道HDFS中任何給定的文件的塊列表及其位置。使用此信息namenode知道如何從塊中構(gòu)建文件。(如果不知道,那么存儲服務(wù)就是失敗的)

6)為了提高響應(yīng)效率。元數(shù)據(jù)保存在內(nèi)存當(dāng)中,對元數(shù)據(jù)做定時備份。NameNode并不會持久化存儲每個文件中各個塊所在的DataNode位置(不會保存在日志當(dāng)中,也不會保存在鏡像當(dāng)中,只會在內(nèi)存元素中有),這些信息會在系統(tǒng)啟動時草趕時間節(jié)點重建。

7)NameNode對于HDFS至關(guān)重要,當(dāng)NameNode關(guān)閉時,HDFS/Hadoop集群無法訪問。

8)NameNode是Hadoop集群中的單點故障。單獨故障:它如果出了問題,其他不可以用。

9)NameNode所在集群通常會配置大量內(nèi)存(RAM)

2、DataNode

1)DataNode負(fù)責(zé)將實際數(shù)據(jù)存儲在HDFS中。

2)DataNode也稱為slave。

3)DataNode和NameNode

4)DataNode啟動時,它將腹部自己到namenode,并匯報自己負(fù)責(zé)持有的塊列表。

5)當(dāng)某個DataNode關(guān)閉時,不加影響數(shù)據(jù)或集群可用性。DataNode將安排其他DataNode管理的塊進(jìn)行副本復(fù)制。

6)DataNode所在機(jī)器通常配置大量硬盤空間。因為實際數(shù)據(jù)存儲在DataNode中。

7)DataNode會定金(dfs.heartbeat.interval配置項配置,默認(rèn)3s)想namenode發(fā)送心跳,如果namenode長時間沒收到心跳,namenode就會認(rèn)為該DataNode失效。

8)block匯報持有塊,匯報時間間隔取參數(shù)dfs,blockreport.intervaIMsec,默認(rèn)6小時

五、HDFS工作機(jī)制

NameNode(1個)負(fù)責(zé)整個文件系統(tǒng)元數(shù)據(jù);DataNode(可能多個)負(fù)責(zé)管理具體文件數(shù)據(jù)塊存儲;Secondary NameNode(理解為秘書)協(xié)助NameNode進(jìn)行元數(shù)據(jù)備份。

HDFS的內(nèi)容部工作機(jī)制對客戶端保持透明,客戶端請求訪問HDFS都是通過向namenode申請來進(jìn)行。


六、HDFS數(shù)據(jù)流程

七、案例:Shell定時采集數(shù)據(jù)至HDFS

????一般日志文件生成的邏輯有業(yè)務(wù)系統(tǒng)決定,比如每小時滾動一次,或者一定大小滾動一次,避免單個日志文件多大不方便操作。

????比如滾動后的文件命名為access.log.x,其中x為數(shù)字。正在進(jìn)行寫的日志文件叫access.log。這樣的話,如果日志文件后綴有數(shù)字的,就滿足上傳條件,就把這些文件移動到準(zhǔn)備上傳的工作區(qū)間目錄(比如叫toupoad)。工作區(qū)間有文件夾之后,可以試用Hadoop put命名將文件上傳。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 首先,我們在使用前先看看HDFS是什麼?這將有助于我們是以后的運維使用和故障排除思路的獲得。 HDFS采用mast...
    W_Bousquet閱讀 4,228評論 0 2
  • Hadoop分布式文件系統(tǒng)(HDFS)是一種分布式文件系統(tǒng)。它與現(xiàn)有的分布式文件系統(tǒng)有許多相似之處。但是,與其他分...
    逍遙ii閱讀 1,153評論 3 20
  • 目錄一 HDFS概念1.概念2.組成3 HDFS 文件塊大小二.HDFS命令行操作1.基本語法2.參數(shù)大全3.常用...
    Movle閱讀 1,640評論 0 5
  • 還記得《辣媽正傳》里孫麗帶著主婦們在商場血拼換型的鏡頭嗎.....女人要的就是這股愛美、自信勁,你真以為你為家操勞...
    女人的第三世界閱讀 873評論 0 3
  • 昨晚醉心于一件也許不那么正統(tǒng)的事情,結(jié)果凌晨兩點才入睡,早晨六點醒來,可是一直躺在床上,不知意識是否一直保持清醒著...
    抬頭望見月_閱讀 121評論 0 1