hadoop學習 HDFS詳細學習

2021-06-26 11:39:52 字數 2163 閱讀 8743

1、hdfs概念

hadoop distributed file system,簡稱hdfs,是乙個分布式檔案系統。 hdfs是高容錯性的,可以部署在低成本的硬體之上,hdfs提供高吞吐量地對應用程式資料訪問,它適合大資料集的應用程式。

2、hdfs 設計目標

hdfs不適合做什麼

儲存小檔案

大量隨機讀

需要對檔案修改

3 hdfs體系結構簡介及優缺點

在hdfs的乙個檔案中只有乙個寫入者,而且寫操作只能在檔案末尾完成,即只能執行追加操作。目前hdfs還不支援多個使用者對同一檔案的寫操作,以及在檔案任意位置進行修改。

4、hdfs的高可用性 在

hadoop2.0.0之前,namenode(nn)在

hdfs集群中存在單點故障(single point of failure),每乙個集群中存在乙個namenode,如果nn所在的機器出現了故障,那麼將導致整個集群無法利用,直到nn重啟或者在另一台主機上啟動nn守護執行緒。

主要在兩方面影響了

hdfs

的可用性:

(1)、在不可**的情況下,如果nn所在的機器崩潰了,整個集群將無法利用,直到nn被重新啟動;

(2)、在可預知的情況下,比如nn所在的機器硬體或者軟體需要公升級,將導致集群宕機。

hdfs

的高可用性將通過在同乙個集群中執行兩個nn(active nn & standby nn)來解決上面兩個問題,這種方案允許在機器破潰或者機器維護快速地啟用乙個新的nn來恢復故障。

在典型ha的

集群中,通常有兩台不同的機器充當nn。在任何時間,只有一台機器處於active狀態;另一台機器是處於standby狀態。active nn負責集群中所有客戶端的操作;而standby nn主要用於備用,它主要維持足夠的狀態,如果必要,可以提供快速的故障恢復。

為了讓standby nn的狀態和active nn保持同步,即元資料保持一致,它們都將會和journalnodes守護程序通訊。當active nn執行任何有關命名空間的修改,它需要持久化到一半以上的journalnodes上(通過edits log持久化儲存),而standby nn負責觀察edits log的變化,它能夠讀取從jns中讀取edits資訊,並更新其內部的命名空間。一旦active nn出現故障,standby nn將會保證從jns中讀出了全部的edits,然後切換成active狀態。standby nn讀取全部的edits可確保發生故障轉移之前,是和active nn擁有完全同步的命名空間狀態。

為了提供快速的故障恢復,standby nn也需要儲存集群中各個檔案塊的儲存位置。為了實現這個,集群中所有的database將配置好active nn和standby nn的位置,並向它們傳送塊檔案所在的位置及心跳。

在任何時候,集群中只有乙個nn處於active 狀態是極其重要的。否則,在兩個active nn的狀態下namespace狀態將會出現分歧,這將會導致資料的丟失及其它不正確的結果。為了保證這種情況不會發生,在任何時間,jns只允許乙個nn充當writer。在故障恢復期間,將要變成active 狀態的nn將取得writer的角色,並阻止另外乙個nn繼續處於active狀態。

為了部署

ha集群,你需要準備以下事項:

(1)、namenode machines:執行active nn和standby nn的機器需要相同的硬體配置;

(2)、journalnode machines:也就是執行jn的機器。jn守護程序相對來說比較輕量,所以這些守護程序可以可其他守護執行緒(比如nn,yarn resourcemanager)執行在同一臺機器上。在乙個集群中,最少要執行3個jn守護程序,這將使得系統有一定的容錯能力。當然,你也可以執行3個以上的jn,但是為了增加系統的容錯能力,你應該執行奇數個jn(3、5、7等),當執行n個jn,系統將最多容忍(n-1)/2個jn崩潰。在ha

集群中,standby nn也執行namespace狀態的checkpoints,所以不必要執行secondary nn、checkpointnode和backupnode;事實上,執行這些守護程序是錯誤的。

hadoop學習筆記(HDFS)

hdfs的設計基礎與目標 1 硬體錯誤是常態,因此需要冗餘。2 為大資料而生,流式讀寫,批量讀取而非隨機讀寫。擅長資料分析而不是事務處理。3 大規模資料集。4 一次寫多次讀邏輯設計,即一旦寫入,只能讀,不能修改。5 程式才用 資料就近 原則分配節點執行。hdfs的可靠性 冗餘副本策略 機架策略 心跳...

Hadoop離線基礎總結 HDFS詳細介紹

分布式檔案系統設計思路 為了解決資料丟失的問題,引入副本機制,保證資料不會丟失 如果對檔案進行切塊儲存,那麼元資料資訊又要繼續變化 blk元資料資訊的記錄 blk 00001 node01 node03 export servers blk 00001 blk 00002 node02 node01...

Hadoop學習(二) HDFS介紹

隨著資料量越來越大,在乙個作業系統存不下所有的資料,那麼就分配到更多的作業系統管理的磁碟中,但是不方便管理和維護,迫切需要一種系統來管理多台機器上的檔案,這就是分布式檔案管理系統。hdfs只是分布式檔案管理系統中的一種。hadoop分布式檔案系統,主要用來解決海量資料的儲存問題 它是乙個檔案系統,用...