Hadoopディスク割当テスト


最近はHDFSのディスククォータ(Quotas)機能を使う必要があるので、少し勉強して、簡単なテストをしました.
HDFSのQuotasは2種類に分けられます.
  • Name Quotas:HDFS指定ディレクトリのファイルまたはフォルダの数を制限します.
  • Space Quotas:HDFS指定ディレクトリの最大使用スペースを制限するために使用されます.ここでは、HDFSコピーファクタが2である場合、1 Gのファイルをアップロードすると、Space Quotasで2 G減少することに特に注意してください. 

  • 次に、私のテストクラスタのテスト結果を示します.
          
    hadoop@mt-15:/opt/hadoop/sbin$ hadoop fs -mkdir /quato1
    hadoop@mt-15:/opt/hadoop/sbin$ hadoop dfsadmin -setQuota 2 /quota1
    hadoop@mt-15:/opt/hadoop/sbin$ hadoop fs -put start-dfs.sh /quota1
    hadoop@mt-15:/opt/hadoop/sbin$ hadoop fs -put stop-dfs.sh /quota1
        put: The NameSpace quota (directories and files) of directory /quota1 is exceeded: quota=2 file count=3
    
     the name quota value set for each directory, the available name quota remaining, the space quota value set, and the available space quota remaining
    hadoop@mt-15:/opt/hadoop/sbin$ hadoop fs -count -q /quota1
          All-Name-Quo       Remain-Name-Quo        All-Space-Quo   Remain-Space-Quo     File-Num    Directory-Num     Size/Name
               2               0                      none            inf                  1              1           3705 /quota1
    
    hadoop@mt-15:/opt/hadoop/sbin$ hadoop dfsadmin -setQuota 4 /quota1
    DEPRECATED: Use of this script to execute hdfs command is deprecated.
    Instead use the hdfs command for it.
    
    hadoop@mt-15:/opt/hadoop/sbin$ hadoop fs -count -q /quota1
               4               2            none             inf            1            1               3705 /quota1
    hadoop@mt-15:/opt/hadoop/sbin$ hadoop fs -put stop-dfs.sh /quota1
    hadoop@mt-15:/opt/hadoop/sbin$ hadoop fs -count -q /quota1
               4               1            none             inf            1            2               6911 /quota1
    
    
    hadoop@mt-15:/opt/hadoop/sbin$ hadoop dfsadmin -setSpaceQuota 10M /quota1
    DEPRECATED: Use of this script to execute hdfs command is deprecated.
    Instead use the hdfs command for it.
    
    hadoop@mt-15:/opt/hadoop/sbin$ hadoop fs -count -q /quota1
               4               1        10485760        10471938            1            2               6911 /quota1
    
    hadoop@mt-15:/opt/hadoop$ du -sh mesos-hadoop-mr1-0.1.1-SNAPSHOT.jar
    6.1M    mesos-hadoop-mr1-0.1.1-SNAPSHOT.jar
    
    hadoop@mt-15:/opt/hadoop$ hadoop fs -put mesos-hadoop-mr1-0.1.1-SNAPSHOT.jar /quota1/
    15/08/19 10:46:31 WARN hdfs.DFSClient: DataStreamer Exception
    org.apache.hadoop.hdfs.protocol.DSQuotaExceededException: The DiskSpace quota of /quota1 is exceeded: quota = 10485760 B = 10 MB but diskspace consumed = 268449278 B = 256.01 MB
    ......
    put: The DiskSpace quota of /quota1 is exceeded: quota = 10485760 B = 10 MB but diskspace consumed = 268449278 B = 256.01 MB