1.塊block
塊的大小128m
塊的副本數3
dfs.blocksize
134217728
dfs.replication
3
面試題:如果乙個檔案130m,將檔案以塊的方式分割,去儲存,怎樣實現
實際儲存 規格 副本
塊a: 128m 128m a0 a1 a2
塊b: 2m 128m b0 b1 b2
可以這樣理解:
一碗水130ml 乙個瓶子規格容量128ml
只能2個瓶子:第1個裝滿128ml 第二個裝不滿,實為2ml
hdfs 適應場景: 大檔案儲存,小檔案是致命的
如果130m是由10個10m的檔案加1個30m的檔案組成,那麼就有11個小檔案,nn的開銷比之前的2個塊大。
小檔案會把nn(4g=42億位元組)撐爆
1個小檔案(閥值<=30m):nn節點維護的位元組大約250位元組
1億個小檔案:250b*1億=250億位元組 > nn的4g(42億位元組)
生產上:
- 小檔案的閥值
- 如何合併小檔案:
資料未落地到hdfs之前合併
資料已經落到hdfs,spark service服務
每天排程去合併,譬如:-15天(業務週期)
- 小檔案危害:
撐爆nn
計算的時候,hive spark
調整塊的大小:
dfs.blocksize: 128m(default)
可以調整為256m
2.副本數
偽分布式:1臺主機,副本資料只能為1
生產上:副本數一般也是官方預設引數(3份)
dfs.replication : 3
題目: 塊大小128m,副本數3份,乙個檔案260m,請問多少塊,多少實際儲存?
儲存塊數:260%128=2…4m 3個塊*3個副本=9個塊
實際儲存:260m * 3 =780m
HDFS概念詳解 塊
乙個磁碟有它的塊大小,代表著它能夠讀寫的最小資料量。檔案系統通過處理大小為乙個磁碟塊大小的整數倍數的資料塊來運作這個磁碟。檔案系統塊一般為幾千位元組,而磁碟塊一般為512個位元組。這些資訊,對於僅僅在乙個檔案上讀或寫任意長度的檔案系統使用者來說是透明的。但是,有些工具會維護檔案系統,如df 和 fs...
hadoop 一 深度剖析hdfs原理
在配置hbase集群將 hdfs 掛接到其它映象盤時,有不少困惑的地方,結合以前的資料再次學習 大資料底層技術的三大基石起源於google在2006年之前的三篇 gfs map reduce bigtable,其中gfs map reduce技術直接支援了apache hadoop專案的誕生,big...
block 實現原理詳解(一)
對於大多數人來講,block內部到底是怎樣實現的呢?我們可以借助clang將其編譯成為c 的 就可以看出,block到底是什麼東西,先來看這樣乙個問題,int age 10 void block age 30 block 10 以及下面的這一段 block int age 10 void block...