為什麼HDFS文件塊(block)大小設定為128M解析

2020-12-21 騰訊網

Table of Contents

一.前言

二. block 大小設置原則:最小化尋址開銷,減少網絡傳輸.

三、為什麼HDFS中塊(block)不能設置太大,也不能設置太小?

四、 HDFS中塊(block)的大小為什麼設置為128M?

一.前言

HDFS中存儲數據是以塊(block,這只是一個邏輯概念)的形式存儲在DataNode,block大小可通過設置HADOOP_HOME/etc/hadoop/hdfs-site.xml中dfs.blocksize實現(設置時先stop集群,修改完restart集群)。在Hadoop2.x之後的版本中,文件塊的默認大小是128M,老版本中默認是64M;

二. block 大小設置原則:最小化尋址開銷,減少網絡傳輸.

減少硬碟尋道時間(disk seek time):HDFS的設計是為了支持大數據操作,合適的block大小有助於減少硬碟尋道時間(平衡了硬碟尋道時間、IO時間),提高系統吞吐量。

減少NameNode內存消耗:NameNode需要在內存FSImage文件中記錄DataNode中數據塊信息,若block size太小,那麼需要維護的數據塊信息會更多。而HDFS只有一個NameNode節點,內存是極其有限的。

map崩潰問題:若Map任務崩潰,重新啟動執行需要重新加載數據,數據塊越大,數據加載時間將越長,恢復時間越長。

監管時間問題:主節點監管其他節點的情況,每個節點會周期性的把完成的工作和狀態的更新報告回來。若某個節點保存沉默超過預設的時間間隔,主節點「宣告」該節點狀態為死亡,並把分配給這個節點的數據發到別的節點。預設的時間間隔是根據數據塊 size角度估算的,若size設置不合理,容易誤判節點死亡。

約束Map任務輸出:MapReduce框架中Map任務輸出的結果是要經過排序才給reduce函數操作的。在Map任務的merge on disk和Reduce任務中合併溢寫生的文件,用到歸併排序算法,對小文件進行排序,然後將小文件歸併成大文件。

網絡傳輸問題: 在數據讀寫計算的時候,需要進行網絡傳輸.如果block過大會導致網絡傳輸時間增長,程序卡頓/超時/無響應. 任務執行的過程中拉取其他節點的block或者失敗重試的成本會過高.如果block過小,則會頻繁的進行文件傳輸,對嚴重佔用網絡/CPU資源.

三、為什麼HDFS中塊(block)不能設置太大,也不能設置太小?

1. 如果塊設置過大,

第一點: 從磁碟傳輸數據的時間會明顯大於尋址時間,導致程序在處理這塊數據時,變得非常慢;

第二點: mapreduce中的map任務通常一次只處理一個塊中的數據,如果塊過大運行速度也會很慢。

第三點: 在數據讀寫計算的時候,需要進行網絡傳輸.如果block過大會導致網絡傳輸時間增長,程序卡頓/超時/無響應. 任務執行的過程中拉取其他節點的block或者失敗重試的成本會過高.

第四點: namenode監管容易判斷數據節點死亡.導致集群頻繁產生/移除副本, 佔用cpu,網絡,內存資源.

2. 如果塊設置過小,

第一點: 存放大量小文件會佔用NameNode中大量內存來存儲元數據,而NameNode的物理內存是有限的;

第二點: 文件塊過小,尋址時間增大,導致程序一直在找block的開始位置。

第三點: 作業系統對目錄中的小文件處理存在性能問題.比如同一個目錄下文件數量操作100萬,執行"fs -l "之類的命令會卡死.

第四點: ,則會頻繁的進行文件傳輸,對嚴重佔用網絡/CPU資源.

主要取決於磁碟/網絡的傳輸速率。[其實就是CPU,磁碟,網卡之間的協同效率 即 跨物理機/機架之間文件傳輸速率]

四、 HDFS中塊(block)的大小為什麼設置為128M?

1. HDFS中平均尋址時間大概為10ms;

2. 經過測試發現,尋址時間為傳輸時間的1%時,為最佳狀態;

所以最佳傳輸時間為10ms/0.01=1000ms=1s

3. 目前磁碟的傳輸速率普遍為100MB/s , 網卡普遍為千兆網卡傳輸速率普遍也是100MB/s;

計算出最佳block大小:100MB/s x 1s = 100MB

所以我們設定block大小為128MB。

4. 實際在工業生產中,需要經過集群之間的具體情況進行設置.

比如: 跨物理機/機架之間文件傳輸速率為200MB/s時,一般設定block大小為256MB , 文件傳輸速率為400MB/s時,一般設定block大小為512MB . 不過最大一般不會超過512MB , 因為目前固態硬碟的讀寫速率應該不會超過512MB(如果做RAID另行考慮.).

如果大家知道其他的原因或者問題 ,麻煩留言告知,不勝感激....

參考:

------------END-----------

相關焦點

  • 五大常見存儲系統PK|Ceph、GlusterFS、MooseFS、HDFS、DRBD
    Ceph提供了一個符合POSIX的網絡文件系統(CephFS),旨在實現高性能,大數據存儲以及與傳統應用程式的最大兼容。Ceph可以通過各種程式語言或者radosgw(RGW)實現無縫的訪問對象存儲,(RGW)這是一種REST接口,它與為S3和Swift編寫的應用程式兼容。另一方面,Ceph的RADOS塊設備(RBD)可以訪問在整個存儲集群中條帶化和複製的塊設備映像。
  • ...AnimationClip的AB文件大小| 不同Unity版本的AB文件大小不一致...
    我們使用了LZ4的壓縮格式,這個文件的大小大約是800K+,偶然測試使用了非LZ4的形式來打包,這個文件的大小大約是60K左右,相差有10倍以上的差異,這個就比較奇怪。兩種格式下的AssetBundle文件大小差異:A:是可能存在這個問題的。使用了LZ4壓縮的動畫文件AssetBundle大小,與Animation面板中Clip的數目和每個Clip的大小成正相關。
  • 大數據入門:Hadoop HDFS存儲原理
    而HDFS只是分布式文件系統中的一種,依託於Hadoop生態,去承擔大數據分布式存儲的管理任務。3、HDFS的概念與架構HDFS是典型的主/從架構。HDFS集群由一個NameNode組成,NameNode是一個主伺服器,它管理文件系統名稱空間並控制客戶機對文件的訪問。
  • PR軟體入門,為什麼導出來視頻這麼大?怎樣計算文件大小
    按照正常的設定來說,一幀畫面的比例為1920×1080,包含著270萬個像素,一秒鐘有25個畫面,也就是25幀。再加上24BIT的色彩數據信息,所以一秒鐘的視頻,就能夠達到150兆。20秒鐘差不多兩個G了。一分鐘就是十幾個g,10分鐘能夠達到多少呢?為什麼會出現這種情況?
  • ELF文件格式解析
    ELF文件的生成一個main.c的文件,在linux系統上,經過gcc編譯後可以生成一個可以執行的文件,以hello.c為例#include<stdio.h>int main(){printf("Hello World \n");return 0;}一個ELF的生成,最開始是在系統中編寫的一個源文件
  • 分析DEXON 和 NANO 的 blocklattice (區塊網) 實現之間的差異
    換句話說,區塊網也可以簡化為區塊鏈。Blocklattice 如何用於 Nano在這裡,我們將介紹Nano,一種具有新型塊格結構的加密貨幣,其中每個帳戶都有自己的區塊鏈,提供近乎瞬時的交易速度和無限的可擴展性。與許多其他加密貨幣中使用的區塊鏈不同,Nano使用塊狀網格結構。每個帳戶都有自己的區塊鏈(帳戶鏈),相當於帳戶的交易/餘額歷史記錄。
  • 大數據入門:HDFS架構演進之路
    Hadoop的核心三大組件之一,HDFS主要負責分布式文件存儲,將大規模的數據存儲任務拆分成小塊,分布到不同的機器上,從而以低成本的方式解決大數據存儲問題。今天的大數據入門分享,我們就主要來講講伴隨著Hadoop的迭代更新,HDFS架構是如何演進的。
  • Pr導出視頻時,如何調節視頻文件大小?
    經常有新手朋友遇到這樣的問題,自己用pr剪輯的視頻導出後,文件大小動輒幾百兆到幾個G,想發個朋友圈結果文件太大無法上傳,文件太大不僅存儲佔空間而且網絡傳輸也特別不方便,今天我們就講講pr導出視頻怎麼精準控制文件大小?
  • 中國引進nanoblock原創微型積木,為積木愛好者提供不一樣的樂趣
    中國引進nanoblock原創微型積木,為積木愛好者提供不一樣的樂趣 2019-10-18 14:59:32   來源:網絡
  • 來自日本的「迷你樂高」nanoblock,適合學齡段孩子的一款小玩具...
    積木類玩具可以說是孩子成長過程中最常見的玩具了,今天我們為大家介紹一款來自日本的「迷你樂高」積木,它的特色是積木塊體積小巧,拼裝方式與大家熟知的樂高一樣。
  • PS5遊戲文件大小曝光,動輒100GB
    在 PlayStation Direct 網站上,已經列出了《蜘蛛俠:邁爾斯 - 莫拉萊斯》和《惡魔之魂》的文件大小估計。以《蜘蛛俠:邁爾斯 - 莫拉萊斯》為例,遊戲的標準版文件體積達 50GB,而包含《蜘蛛俠:重製版》的終極版則達 105GB。而 2009 年 PS3 遊戲的完整重製版《惡魔之魂》也不小 ,體積約 66GB。
  • 「鬼滅之刃」nanoblock系列開始預定
    「鬼滅之刃」nanoblock系列開始預定 動漫 178動漫整編 ▪ 2020
  • 在 ABT 節點部署 RPG 製作大師遊戲指南 | ArcBlock 博客
    我們為開發者提供的一個不錯的選擇是 Gitpod 雲原生 IDE 支持,只需單擊「在 Gitpod 中打開」。單擊按鈕後,Gitpod 服務將啟動並為你運行基於 docker 的雲開發環境。通過這一部署,我們將為你自動安裝 ABT 節點的開發者版本。但是,這僅用於開發,開發進程結束後,ABT 節點將自動關閉。
  • 大數據開發:HDFS的故障恢復和高可用
    HDFS存儲運行流程1、HDFS讀取數據步驟:客戶端調用FileStype對象的open()方法打開希望打開的文件;DistributedFileSystem通過RPC調用NameNode來獲取起始塊的位置。
  • 重回文件島 究極數碼暴龍文件島奇遇系統解析
    在動漫裡,被選召的孩子們初入數碼世界便來到的文件島,而在遊戲裡,玩家們則能夠通過「文件島奇遇」系統,造訪這數碼夢開始的地方。那麼在《究極數碼暴龍》中的文件島又有怎樣的奇遇呢?現在就讓小編為大家具體介紹這一系統吧!
  • 模玩資訊:nanoblock《鬼滅之刃》系列 熱門角色登場
    日本河田公司(KAWADA)旗下超人氣微型積木「nanoblock」將推出以熱門動漫《鬼滅之刃》為題材的「nanoblock 鬼滅之刃」系列~一共推出七款角色,每款參考售價為 1,700 日圓,目前於 Aniplex+ 網站開放預購,第一波預購採受注生產,第二波將於 8 月 3 日起採數量限定販售,預計將於 2020 年 10 月 17 日正式發售。
  • nanoblock新品一覽 | 我的世界也加入樂高方頭仔了
    6月23日,世界上最小積木的nanoblock將發布一系列的新品,看多了樂高,我們換個口味,來看看他們都將推出什麼新set。