Hadoop 學(xué)習(xí)筆記整理二

大綱:
一. 大數(shù)據(jù)啟蒙認(rèn)識(shí)
二. HDFS
三. Hadoop1.0的非HA模式(SecondaryNameNode)
四. Hadoop2.0或者3.0的HA模式

今天的筆記是關(guān)于第二點(diǎn)Hadoop1.0的非HA模式(SecondaryNameNode)

Hadoop中的HDFS模塊(SecondaryNameNode)

首先必須要了解的HDFS(文件系統(tǒng))理論知識(shí)點(diǎn)如下:

  • 存儲(chǔ)模型
  • 架構(gòu)設(shè)計(jì)
  • 角色功能
  • 元數(shù)據(jù)持久化
  • 安全模式
  • 副本放置策略
  • 讀寫流程
  • 安全策略

存儲(chǔ)模型的特點(diǎn)

  • 文件線性按字節(jié)切割成塊(block),具有offset,id
  • 文件與文件的block大小可以不一樣
  • 一個(gè)文件除最后一個(gè)block,其他block大小一致
  • block的大小依據(jù)硬件的I/O特性調(diào)整
  • block被分散存放在集群的節(jié)點(diǎn)中,具有l(wèi)ocation
  • Block具有副本(replication),沒有主從概念,副本不能出現(xiàn)在同一個(gè)節(jié)點(diǎn)
  • 副本是滿足可靠性和性能的關(guān)鍵
  • 文件上傳可以指定block大小和副本數(shù),上傳后只能修改副本數(shù)
  • 一次寫入多次讀取,不支持修改
  • 支持追加數(shù)據(jù)

問題一:Hadoop 為什么要設(shè)置HDFS文件系統(tǒng)?

為了實(shí)現(xiàn)Hadoop的功能,必須要一個(gè)具有以下特點(diǎn)的文件系統(tǒng):

  1. 超大文件的分布式存儲(chǔ)
  2. 文件的高并發(fā)訪問
  3. 高可擴(kuò)展性
  4. 高可靠性
  5. 高容錯(cuò)
  6. 高安全性
  7. 高獲得性

也正是基于這些特點(diǎn),所以建立了HDFS文件系統(tǒng),這也是為什么我們需要它。

問題二:為什么HDFS的block相較于傳統(tǒng)文件系統(tǒng)來說大很多?

因?yàn)镠DFS的的一個(gè)設(shè)計(jì)目標(biāo)就是能夠快速讀取。而對(duì)于磁盤來說,讀取一個(gè)數(shù)據(jù)塊涉及到三種時(shí)間開銷,尋道時(shí)間、旋轉(zhuǎn)時(shí)間和傳輸時(shí)間。傳輸時(shí)間是磁盤本身的特性,不可能通過人工手段來改變,但是對(duì)于尋道時(shí)間和旋轉(zhuǎn)時(shí)間,則可以通過增大一次讀取的數(shù)據(jù)量來減少尋道和旋轉(zhuǎn)的次數(shù)。這樣的話,就可以將讀取數(shù)據(jù)的速率設(shè)計(jì)為接近真實(shí)的磁盤傳輸速率。

舉個(gè)例子,假設(shè)某磁盤的尋道時(shí)間和旋轉(zhuǎn)時(shí)間之和為10ms,傳輸速率為100MB/s。那么,如果想設(shè)計(jì)一種讀取方式讓尋道時(shí)間與旋轉(zhuǎn)時(shí)間總和 不高于總讀取時(shí)間的1%的話,則需要將block的大小設(shè)置為100MB。

當(dāng)然,這個(gè)觀點(diǎn)不可能長(zhǎng)期成立。在MapReduce中,一個(gè)Map任務(wù)一般一次只處理一個(gè)block。那么,當(dāng)Map任務(wù)的數(shù)量少于集群中節(jié)點(diǎn)的個(gè)數(shù)時(shí),完成此job所需時(shí)間就會(huì)慢于其他情況。

問題三: 為什么HDFS中塊(block)不能設(shè)置太大,也不能設(shè)置太???

  1. size設(shè)置過大:
    如果設(shè)置的過大,將會(huì)導(dǎo)致數(shù)據(jù)傳輸時(shí)間明顯大于尋址時(shí)間,導(dǎo)致程序處理這塊的時(shí)間,變得很慢。
  2. size設(shè)置過?。?
    • size過小勢(shì)必導(dǎo)致block的數(shù)量變多,當(dāng)數(shù)量多到一定程度的時(shí)候,會(huì)讓namenode的開銷變大
    • 尋址時(shí)間也會(huì)變多

問題四:應(yīng)該怎么設(shè)置block的size?

總的來說磁盤傳輸速率決定了block size的設(shè)置。

  1. HDFS中平均尋址時(shí)間大約10ms
  2. 經(jīng)過實(shí)測(cè),尋址時(shí)間為了磁盤傳輸時(shí)間的1%,為最佳狀態(tài)。因此得到如下公式:
最佳傳輸時(shí)間:10ms / 0.01 = 1s
  1. 目前磁盤傳輸速率普遍為100M/S
    block size=100M/S * 最佳傳輸時(shí)間 = 100M

注意 實(shí)際生產(chǎn)過程中,磁盤傳輸速率為200MB/s時(shí),一般設(shè)定block大小為256MB,以此類推。

問題五:完整的文件被切分成分片之后,出現(xiàn)丟失的時(shí)候,該怎么辦?

HDFS的解決方案是: 分片冗余,本地校驗(yàn),需要數(shù)據(jù)塊存儲(chǔ)模式


image.png
image.png

數(shù)據(jù)冗余式存儲(chǔ),直接將多份的分片文件交給分片后的存儲(chǔ)服務(wù)器去校驗(yàn)。
冗余后的分片文件還有個(gè)額外功能,只要冗余的分片文件中有一份是完整的,經(jīng)過多次協(xié)同調(diào)整后,其他分片文件也將完整。
經(jīng)過協(xié)調(diào)校驗(yàn),無論是傳輸錯(cuò)誤,I/O錯(cuò)誤,還是個(gè)別服務(wù)器宕機(jī),整個(gè)系統(tǒng)里的文件是完整的。

參考:
http://www.itdecent.cn/p/49eee8e5309a?utm_campaign
https://blog.csdn.net/s5660gt/article/details/83655584
https://blog.csdn.net/wx1528159409/article/details/84260023
https://www.cnblogs.com/sddai/p/8647795.html
https://www.cnblogs.com/guarderming/p/11088518.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Hadoop 核心-HDFS 1. HDFS概述 1.1 介紹 在現(xiàn)代的企業(yè)環(huán)境中,單機(jī)容量往往無法存儲(chǔ)大量數(shù)據(jù),...
    打開世界的源代碼閱讀 493評(píng)論 0 0
  • 一.簡(jiǎn)述如何安裝配置apache 的一個(gè)開源的hadoop 1.使用root賬戶登陸 2.修改ip 3.修改hos...
    梔子花_ef39閱讀 5,066評(píng)論 0 52
  • 目錄一 HDFS概念1.概念2.組成3 HDFS 文件塊大小二.HDFS命令行操作1.基本語法2.參數(shù)大全3.常用...
    Movle閱讀 1,695評(píng)論 0 5
  • 題記:正值學(xué)校運(yùn)動(dòng)會(huì)假期,想吸收點(diǎn)新鮮的血液。心血來潮搭了個(gè)hadoop的偽分布式,了解了下HDFS。 HDFS簡(jiǎn)...
    朱曉飛閱讀 853評(píng)論 0 0
  • 感覺最近的狀態(tài)并不是很好,到底是怎么了呢? 這學(xué)期回來學(xué)校后,每天都睡到九點(diǎn)才起床,即使設(shè)了八點(diǎn)鐘的鬧鐘,也依然擺...
    行者0塤閱讀 265評(píng)論 0 6

友情鏈接更多精彩內(nèi)容