hadoop設計基礎和目標 筆記01

2021-06-29 06:48:58 字數 1814 閱讀 5207

硬體錯誤是常態,因此需要冗餘.

流式資料訪問,即資料批量讀寫而非隨機讀寫,hadoop擅長做的資料分析而不是事務處理

大規模資料集

簡單一致性模型。為了降低系統複雜度,對檔案採用一次性寫多次讀的邏輯設計,也就是說:檔案一經過寫入,關閉就再也不能修改!

程式採用「資料就近」原則分配節點執行.

namenode:

1.管理檔案系統的命名空間

2.記錄每個檔案資料塊在各個datenode上的位置和副本資訊

3.協調客戶端對檔案的訪問

4.記錄命名空間內的改動和空間本身屬性的改動

5.namenode使用事務日誌記錄hdfs元資料的變化。使用映像檔案的命名空間,包括檔案對映,檔案屬性

datanode:

1.負責所在物理節點的儲存管理

2.一次寫入,多次讀取(不修改,也是就不需要處理讀寫一致性的問題)

3.檔案由資料塊組成,典型的塊大小是64mb。

4.資料塊盡量散布到各個節點,實現副本冗餘的效果。

讀取資料流程:

1.客戶端要訪問hdfs檔案

2.首先從namenode獲取組成這個檔案的資料塊位置列表

3.根據列表知道儲存資料塊的datanode

4.​訪問datanode獲取資料

5.namenode不參與實際資料傳輸,只是起到查詢作用。

hdfs的可靠性:

1.冗餘副本策略

hdfs-site.xml設定複製因子指定副本數量,所有資料塊都有副本,datanode啟動時,遍歷本地檔案系統,產生乙份hdfs資料塊和本地檔案的對應關係列表(blockreport)匯報給namenode.

複製因子越大越安全,但是空間利用率低。

2.機架策略

集群一般放在不同機架上,機架間頻寬要比機架內頻寬要小。hdfs的「機架感知」,一般在本機架存放乙個副本,在其他機架再存放別的副本,這樣可以防止機架失效丟失資料,也可以提高頻寬利用率。

3.心跳機制

namenode週期性從datanode接收心跳訊號和塊報告(blockreport),namenode根據塊報告驗證元資料。

沒有按時傳送心跳的datanode會被標記為宕機,不會再給它任何i/o請求.如果datanode失效造成副本數量下降,並且低於預先設定的閥值,namenode會檢測出這些資料塊,並在合適的時間進行重新複製,引發重新複製的原因還包括資料副本本身損壞、磁碟錯誤、複製因子備增大等。

4.安全模式

namenode在啟動時會經過乙個"安全模式"(safemode)階段,此階段不會產生資料讀寫.在此階段namenode收集各個datanode的報告,當資料塊達到最小副本數以上時,會備認為是「安全」的.

在一定比例(可設定)的資料庫被確定為「安全」後,再過若干時間,安全模式結束。當檢測到副本數不足的資料塊時,該塊會被複製直到達到最小副本數。

5.校驗和

在檔案建立時,每個資料塊都會產生校驗和,

校驗和會作為乙個隱藏檔案儲存在命名空間下,

客戶端獲取資料時可以檢查校驗和是否相同,從而發現資料庫是否損壞。如果正在讀取的資料塊損壞,則可以繼續讀取其他副本。

6.**站

刪除檔案時,其實是放入**站(trash).**站裡的檔案可以快速恢復,可以設定乙個時間閥值,當**站裡檔案的存放時間超過這個閥值,就會徹底刪除並釋放占用的資料塊。

7.元資料保護

映像檔案和事務日誌是namenode的核心資料,可以配置為擁有多個副本。副本會降低namenode的處理速度,但增加安全性,namenode依然是單點,如果發生故障要手工切換.

8.快照機制(0.20.2還沒實現)

支援儲存摸個時間點的映象,需要時可以使資料重返時間點的狀態

Hadoop中HDFS的設計目標

1.檢測和快速恢復硬體故障 硬體故障是計算機常見的問題。整個hdfs系統由數百甚至數千個儲存著資料檔案的伺服器組成。而如此多的伺服器則意味著高故障率,因此故障的檢測和快速自動恢復是hdfs的乙個核心目標。2.流式的資料訪問 hdfs使應用程式流式地訪問它們的資料集。hdfs被設計成適合進行批量處理,...

遊戲策劃筆記 目標設計

遊戲策劃筆記 目標設計 1 史詩意義 代入感史詩性質的目標其實是非常關鍵的一項驅動力。完成偉大目標的體驗使人願意付出 時間 金錢 參與其中的代入感甚至能滿足人的無私慾和奉獻欲,畢竟在遊戲裡進行的無私和奉獻是一種小代價換來高體驗 自我感動 的過程,本質還是利己的,利己的事情自然能成為驅動力。長線需求 ...

Hadoop基礎篇的筆記

學習慕課網 hadoop大資料平台架構與實踐 基礎篇 教程的筆記 本課程簡單的介紹了hadoop使用和基本工具和工作原理。hadoop開發指南 課本。google大資料的技術 mapreduce,bigtable,gfs。開源 分布式儲存 分布式雲計算 hadoop開發和運維人才 hive 把sql...