HDFS檔案儲存

2021-09-28 14:58:14 字數 1052 閱讀 5590

理論上hdfs中儲存乙個檔案時會被分成多個block,這些block應該會存放在不同的節點中。例如我們hdfs中有乙個檔案hdfs dfs -put flink-1.8.2-bin-scala_2.11.tgz /

這個檔案被分成了三個block,分別是block0、block1、block2:

這三個block的大小加起來總共就是283.81mb。

其中block0的id為:1073741846、block1的id為1073741847、block2的id為1073741848。

我們在hadoop資料目錄下檢視(在hdfs-site.xml檔案中配置hadoop.tmp.dir),在路徑/home/duandingyang/tmp/hadoop-tmp/dfs/data/current/bp-840844130-127.0.1.1-1570955999745/current/finalized/subdir0/subdir0下看到了這幾個block:

當我們要get這個檔案時,在namenode中查詢這個檔案對應的元資料資訊(檔案被拆成了多少block,這些block的id是多少,存在哪個datanode中等等)

如果我們如果把這三個檔案手動合併會怎麼樣?

將這三個block檔案新增到乙個壓縮檔案:

cat blk_1073741846 >> ~/flink.tgz

cat blk_1073741847 >> ~/flink.tgz

cat blk_1073741848 >> ~/flink.tgz

然後可以使用tar -xvf ~/flink.tgz命令可以解壓這個檔案,

說明hdfs只是幫我們做了個檔案切分

hdfs檔案的儲存

以block塊的形式將大檔案進行相應的儲存 1 64m 2 128m 檔案線性切割成塊 偏移量offset byte block分散儲存在集群節點中 單一檔案block大小一致,檔案與檔案可以不一致 block可以設定副本數,副本分散在不同的節點中,副本數不要超過節點數量 檔案上傳可以設定block...

hadoop的HDFS檔案儲存

1 什麼是hdfs?hdfs適合做 儲存大檔案。上g t甚至p。一次寫入,多次讀取。並且每次作業都要讀取大部分的資料。搭建在普通商業機群上就可以了。雖然會經常宕機,但hdfs有良好的容錯機制。hdfs不適合做 實時資料獲取。如果有這個需求可以用hbase。很多小檔案。因為namenode要儲存hdf...

HDFS儲存檔案的過程詳解

以下內容基本都是自己的語言進行描述的,並不全是官方的說法,若有 說的不對可以在下面進行交流。一 角色 namenode datanode client 1 namenode namenode 負責維護整個檔案系統的資訊,包括 整個檔案樹,檔案的塊分布資訊,檔案系統的元資料,資料複製策略等 以下簡稱n...