HDFS子目錄個數、目錄大小限額 Quota


概覽

HDFS 允許管理員對目錄下的子目錄和文件個數(Name Quotas),以及目錄下數據存儲大小(Space Quotas)進行配額限制。名稱配額和空間配額是獨立運作的,但這兩種配額的管理和實施是密切並行的。

名稱配額(Name Quotas)

名稱配額是對目錄樹中的文件和目錄名的數量的硬限制。如果超出配額,則文件和目錄創建失敗。新創建的目錄沒有關聯的配額,最大的配額是Long.Max_Value。一個配額強制一個目錄保持空白。(是的,一個目錄會計入它自己的配額!)

空間配額(Space Quotas)

空間配額是對目錄樹中的文件所使用的字節數的硬限制。如果配額不允許寫入整個塊,則塊分配失敗。一個塊的每個副本都按配額計數。新創建的目錄沒有關聯的配額,最大的配額是Long.Max_Value。零配額仍然允許創建文件,但是不能向文件添加任何塊

名稱配額和空間配額在fsimage中是持久化的。在啟動時,如果fsimage立即違反了配額(可能fsimage被偷偷修改了),則會對每一次違反都打印一個警告。設置或刪除配額將創建一個日志條目。

存儲類型配額

存儲類型配額是對目錄樹中的文件使用特定存儲類型(SSD、 DISK、 ARCHIVE)的硬限制。它在許多方面類似於存儲空間配額,但提供了對集群存儲空間使用的細粒度控制。要在目錄上設置存儲類型配額,必須在目錄上配置存儲策略,以便根據存儲策略將文件存儲在不同的存儲類型中。有關更多信息,請參見 HDFS 存儲策略文檔

存儲類型配額可以與空間配額和名稱配額結合起來,以有效地管理集群存儲使用。比如說,

  1. 對於配置了存儲策略的目錄,管理員應該為資源約束存儲類型(如 SSD)設置存儲類型配額,為其他存儲類型和總體空間配額設置限制較少的值或默認無限制。HDFS 將根據存儲策略和總體空間配額從目標存儲類型中扣除配額
  2. 對於未配置存儲策略的目錄,管理員不應配置存儲類型配額。即使特定存儲類型不可用(或可用,但沒有正確配置存儲類型信息) ,也可以配置存儲類型配額。但是,在這種情況下,建議使用總體空間配額,因為存儲類型信息對於存儲類型配額強制不可用或不准確
  3. DISK 上的存儲類型配額的使用受到限制,除非 DISK 不是主要的存儲介質。(例如以存檔為主的集群)

管理員命令

配額由一組僅對管理員可用的命令來管理。

  • hdfs dfsadmin -setQuota ...

    將每個目錄的名稱配額設置為 n。

  • hdfs dfsadmin -clrQuota ...

    刪除每個目錄的任何名稱配額。

  • hdfs dfsadmin -setSpaceQuota ...

    將每個目錄的空間配額設置為 n 個字節。這是對目錄下所有文件的總大小的硬限制。空間配額也考慮到副本,即一個 1GB 3個副本的數據將消耗3 GB 的配額。

  • hdfs dfsadmin -clrSpaceQuota ...

    刪除每個目錄的空間配額。

  • hdfs dfsadmin -setSpaceQuota -storageType ...

    將存儲類型配額設置為為每個目錄指定的 n 字節存儲類型。

  • hdfs dfsadmin -clrSpaceQuota -storageType ...

    刪除為每個目錄指定的存儲類型配額。

報告命令

報告配額值和當前使用的名稱和字節數。

  • hadoop fs -count -q [-h] [-v] [-t [comma-separated list of storagetypes]] ...

    使用 -q 選項可以報告每個目錄的名稱配額值、剩余的可用名稱配額、空間配額值和剩余的可用空間配額。如果目錄沒有配額集,則報告的值為 none 和 inf。h 選項以人類可讀的格式顯示大小。v 選項顯示一行標題。t 選項顯示每個存儲類型配額集和每個目錄剩余的可用配額。如果給出了-t 選項,則只顯示指定類型的配額和剩余配額。否則,將顯示支持配額的所有存儲類型的配額和剩余配額。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM