鍍金池/ 教程/ 大數(shù)據(jù)/ Hadoop - HDFS
YARN - Failover
MapReduce - Shuffle
Hadoop配置
MapReduce - 讀取數(shù)據(jù)
Hadoop - MapReduce
YARN - Container
Hadoop 測(cè)試
MapReduce - Mapper
Hadoop - 參考
YARN - ResourceManager
HDFS - 可靠性
HDFS - 讀文件
Hadoop - 簡(jiǎn)介
YARN - ApplicationMaster
Hadoop - IO
Hadoop 監(jiān)控
MapReduce - 編程
Hadoop - YARN
Hadoop - HDFS
HDFS - 命令工具
HDFS - 寫(xiě)文件
YARN - NodeManager
Hadoop安裝

Hadoop - HDFS

簡(jiǎn)介

Hadoop Distributed File System,分布式文件系統(tǒng)

架構(gòu)

http://wiki.jikexueyuan.com/project/hadoop/images/hdfs-architecture.png" alt="" />

  • Block數(shù)據(jù)&##x5757;

    1. 基本存儲(chǔ)單位,一般大小為64M(配置大的塊主要是因?yàn)椋?)減少搜尋時(shí)間,一般硬盤(pán)傳輸速率比尋道時(shí)間要快,大的塊可以減少尋道時(shí)間;2)減少管理塊的數(shù)據(jù)開(kāi)銷(xiāo),每個(gè)塊都需要在NameNode上有對(duì)應(yīng)的記錄;3)對(duì)數(shù)據(jù)塊進(jìn)行讀寫(xiě),減少建立網(wǎng)絡(luò)的連接成本)

    2. 一個(gè)大文件會(huì)被拆分成一個(gè)個(gè)的塊,然后存儲(chǔ)于不同的機(jī)器。如果一個(gè)文件少于Block大小,那么實(shí)際占用的空間為其文件的大小

    3. 基本的讀寫(xiě)S#x5355;位,類(lèi)似于磁盤(pán)的頁(yè),每次都是讀寫(xiě)一個(gè)塊

    4. 每個(gè)塊都會(huì)被復(fù)制到多臺(tái)機(jī)器,默認(rèn)復(fù)制3份
  • NameNode

    1. 存儲(chǔ)文件的metadata,運(yùn)行時(shí)所有數(shù)據(jù)都保存到內(nèi)存,整個(gè)HDFS可存儲(chǔ)的文件數(shù)受限于NameNode的內(nèi)存大小

    2. 一個(gè)Block在NameNode中對(duì)應(yīng)一條記錄(一般一個(gè)block占用150字節(jié)),如果是大量的小文件,會(huì)消耗大量?jī)?nèi)存。同時(shí)map task的數(shù)量是由splits來(lái)決定的,所以用MapReduce處理大量的小文件時(shí),就會(huì)產(chǎn)生過(guò)多的map task,線程管理開(kāi)銷(xiāo)將會(huì)增加作業(yè)時(shí)間。處理大量小文件的速度遠(yuǎn)遠(yuǎn)小于處理同等大小的大文件的速度。因此Hadoop建議存儲(chǔ)大文件

    3. 數(shù)據(jù)會(huì)定時(shí)保存到本地磁盤(pán),但不保存block的位置信息,而是由DataNode注冊(cè)時(shí)上報(bào)和運(yùn)行時(shí)維護(hù)(NameNode中與DataNode相關(guān)的信息并不保存到NameNode的文件系統(tǒng)中,而是NameNode每次重啟后,動(dòng)態(tài)重建)

    4. NameNode失效則整個(gè)HDFS都失效了,所以要保證NameNode的可用性
  • Secondary NameNode

    1. 定時(shí)與NameNode進(jìn)行同步(定期合并文件系統(tǒng)鏡像和編輯日&#x#x5FD7;,然后把合并后的傳給NameNode,替換其鏡像,并清空編輯日志,類(lèi)似于CheckPoint機(jī)制),但NameNode失效后仍需要手工將其設(shè)置成主機(jī)
  • DataNode

    1. 保存具體的block數(shù)據(jù)

    2. 負(fù)責(zé)數(shù)據(jù)的讀寫(xiě)操作和復(fù)制操作

    3. DataNode啟動(dòng)時(shí)會(huì)向NameNode報(bào)告當(dāng)前存儲(chǔ)的數(shù)據(jù)塊信息,后續(xù)也會(huì)定時(shí)報(bào)告修改信息

    4. DataNode之間會(huì)進(jìn)行通信,復(fù)制數(shù)據(jù)塊,保證數(shù)據(jù)的冗余性
上一篇:MapReduce - 編程下一篇:YARN - NodeManager