地表最強系列之 帶你學HDFS

2021-10-07 15:33:46 字數 1698 閱讀 6555

認識hdfs

hdfs是hadoop專案的核心子專案,用於大資料領域的資料儲存 。hdfs是被設計成適合執行在通用硬體上的分布式系統它和現有的分布式檔案系統有很多共同點。但同時,它和其他的分布式檔案系統的區別也是很明顯的。hdfs是乙個高度容錯性的系統,適合部署在廉價的機器上。hdfs能提供高吞吐量的資料訪問,非常適合大規模資料集上的應用。hdfs放寬了一部分posix約束,來實現流式讀取檔案系統資料的目的。hdfs在最開始是作為apache nutch搜尋引擎專案的基礎架構而開發的。hdfs是apache hadoop core專案的一部分。

hdfs優點

- 支援處理超大檔案。這裡的超大檔案通常是指gb到tb量級的資料檔案.

- 可以執行在廉價的機器上,減少成本.

- 高容錯率。hdffs上傳的資料會自動儲存多個副本,即通過增加副本的數量來增加hdfs的容錯率。乙個副本丟失,hdfs股本冗餘機制會自動複製到其他機器上的副本。

- 流式檔案寫入。hdfs提供一次寫入、多次讀取的服務。檔案一旦寫入,就不能修改,只能增加,可以提高i/o流的效能.

資料塊(block)

元資料節點(namenode)

資料節點 (datanode)

從元資料節點(secondary namenode)

secondary namenode 並不是namenode宕機時的備用 節點,它的主要作用是周期性地將editlog檔案中對hdfs的操作合併到乙個fsimage(映象檔案)檔案中,然後清空editlog檔案,防止日誌檔案過大.合併後的fsimage檔案也在元資料節點儲存了乙份,namenode重啟時就會載入最新的fsimage檔案,這樣周期性地合併可以減少hdfs重啟時間.secondary namenode 是用來幫助namenode將記憶體中的元資料資訊持久化到硬碟上的.

hdfs dfs   -ls  /

-mkdir/

-put/

-rm/

-help

這個和linux相似

hdfs dfs -mkdir /hdfs/shell

hdfs dfs -ls /hdfs/shell

hdfs dfs -put /home/hadoop/data/mobile.txt /hdfs/shell

hdfs dfs -text /hdfs/shell/mobile.txt

hdfs dfs -get /hdfs/shell/mobile.txt /home/hadoop
hdfs dfs -du /hdfs/shell
hdfs dfs -rm /hdfs/shell/mobile.txt

hdfs dfs -rmr /hdfs

副本的存放位置會嚴重影響hdfs的可靠性和效能,hdfs上的檔案對應的塊儲存有多個副本且提供容錯機制,因此副本的丟失或宕機能夠自動恢復,預設儲存3個副本.hdfs副本擺放機制如圖

地表最強之Android開機動畫動態替換

之前在論壇搜尋動態替換開機動畫相關的資料,發現幾乎都是需要 root 許可權來操作,而且大多是一些搞機愛好者分享的教程,如果你也是 rom 開發者,這套動態替換方案或許能給你提供一種新視角。android 開機動畫本質上是一種逐幀動畫,這裡貼一下逐幀動畫的百科解釋,逐幀動畫是一種常見的動畫形式 fr...

tim帶你學 HDFS讀取資料的流程

1 客戶端通過呼叫filesystem物件的open 來讀取希望開啟的檔案。2 client向namenode發起rpc請求,來確定請求檔案block所在的位置 3 namenode會視情況返回檔案的部分或者全部block列表,對於每個block,namenode 都會返回含有該 block 副本的...

Hadoop系列之HDFS 資料塊 12

要把大檔案儲存在 hdfs上,hdfs 會把大檔案分割成小塊,即我們通常說的資料塊 block 它是 hadoop 分布式檔案系統最小的儲存單元,而且我們沒辦法決定指定塊的儲存節點位址,這些 namenode 會替我們決定。資料塊預設大小是 128mb,比作業系統裡面的塊概念要大很多 作業系統塊大小...