HDFS異機種ストレージ

8332 ワード

参照先:https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-hdfs/ArchivalStorage.html https://blog.csdn.net/androidlushangderen/article/details/51105876

目次

  • 紹介
  • ストレージ・タイプとストレージ・ポリシー
  • ストレージタイプ:ARCHIVE、DISK、SSD、RAM_DISK
  • ストレージポリシー:Hot,Warm,Cold,All_SSD,One_SSD,Lazy_PersistとProvided
  • ストレージポリシー解析
  • 構成
  • Mover-新しいデータ移動ツール
  • ストレージポリシーコマンド
  • コマンドヘルプ情報
  • ストレージポリシー
  • を一覧表示
  • ストレージポリシー
  • を設定する.
  • ストレージポリシー
  • を取得する.
  • ストレージポリシー
  • の設定を解除する.

    紹介する


    Archival Storageは、増加するストレージ容量とコンピューティング容量を分離するソリューションです.密度が高く、ストレージコストが低く、コンピューティング能力が低いノードが利用可能になり、クラスタ内でコールドストレージとして使用できます.ポリシーに従って、ホットデータはコールドデータに移動できます.コールドストレージにより多くのノードを追加すると、クラスタ内の計算容量とは独立してストレージを増加させることができる.Heterogeneous StorageとArchival Storageが提供するフレームワークは、SSDおよびメモリを含む他のタイプの記憶媒体を含むHDFSアーキテクチャを要約しています.ユーザーは、SSDまたはメモリにデータを格納してパフォーマンスを向上させることを選択できます.

    ストレージ・タイプとストレージ・ポリシー


    ストレージタイプ:ARCHIVE、DISK、SSD、RAM_DISK


    異機種記憶(HDFS-2832)の第1段階は、1つの記憶(複数の物理記憶媒体に対応可能)から1つの記憶(1つの記憶媒体に対応可能)へのDataNodeの記憶モードの変更である.また、DISKがデフォルトのストレージタイプであるストレージタイプ、DISK、SSDの概念も追加されました.  archival storageをサポートするために、高いストレージ密度(PB)と低いコンピューティング能力の特性を有する新しいストレージタイプARICHIVEが追加された.別の新しいメモリタイプRAM_DISKの増加は、メモリに単一のストレージコピーファイルを書き込むことをサポートするためです.

    ストレージポリシー:Hot,Warm,Cold,All_SSD,One_SSD,Lazy_PersistとProvided


    ストレージポリシーのこの新しい概念は、ストレージポリシーに基づいてファイルを異なるストレージタイプに格納するために導入された.現在、次のストレージポリシーがあります.
  • Hot-ストレージおよび計算に使用されます.人気があり、まだ処理に使用されているデータは、このポリシーに保持されます.ブロックがHot状態の場合、すべてのコピーがDISkに格納されます.
  • Cold-限られた計算にのみ使用されるストレージ.使用されなくなったデータまたはアーカイブが必要なデータは、ホットストレージからコールドストレージに移動します.ブロックがCold状態である場合、すべてのコピーはARCHIVEに格納される.
  • Warm-部分的に熱く、部分的に冷たい.ブロックがホット状態にある場合、その一部のコピーはDISKに格納され、残りのコピーはARCHIVEに格納される.
  • All_SSD-すべてのコピーをSSDに保存します.
  • One_SSD-コピーの1つをSSDに保存します.残りのコピーはディスクに格納されます.
  • Lazy_Persist-メモリに単一のコピーを持つblockを書き込むために使用します.コピーはまずRAM_に書きますDISKでは、その後、不活性にディスクに永続化されます.
  • Provided-HDFS以外のデータを格納します.HDFS Provided Storageを参照してください.

  • より正式には、ストレージポリシーは次のフィールドで構成されます.
  • ポリシーID
  • ポリシー名
  • ブロック配置の記憶タイプリスト
  • ファイル作成のフォールバックストレージタイプリスト
  • コピーのロールバックストレージタイプリスト
  •  スペースが十分である場合、blockコピーは#3のストレージタイプリストに従って保存されます.#3の一部の記憶タイプが不足している場合、#4および#5で指定されたロールバック記憶タイプのリストを使用して、不足している記憶タイプを置き換えてファイルを作成およびコピーします.次は、典型的なストレージ・ポリシー・テーブルです.
    Policy ID
    Policy Name
    Block Placement (n replicas)
    Fallback storages for creation
    Fallback storages for replication
    15
    Lazy_Persist
    RAM_DISK: 1, DISK: n-1
    DISK
    DISK
    12
    All_SSD
    SSD: n
    DISK
    DISK
    10
    One_SSD
    SSD: 1, DISK: n-1
    SSD, DISK
    SSD, DISK
    7
    Hot (default)
    DISK: n
    ARCHIVE
    5
    Warm
    DISK: 1, ARCHIVE: n-1
    ARCHIVE, DISK
    ARCHIVE, DISK
    2
    Cold
    ARCHIVE: n
    1
    Provided
    PROVIDED: 1, DISK: n-1
    PROVIDED, DISK
    PROVIDED, DISK
      注意1:Lazy_Persistポリシーは、単一のコピーを格納するblocksにのみ使用されます.単一コピーを超えるblockの場合、すべてのコピーはDISKに書き込まれます.そのコピーの1つだけがRAM_に書き込まれるからです.DISKは全体的な性能を向上させるわけではない.  注意2:stripingレイアウトの削除符号化されたファイルに対して、適切なストレージポリシーはALL_SSD,Hot,Cold.ユーザーがstriped ECファイルに対して上記の他のストレージポリシーを設定している場合、ポリシーに従ってblockは作成および移動されません.

    ストレージポリシーの解析


    ディレクトリまたはファイルが作成されると、そのストレージポリシーは指定されません.ストレージポリシーは、「storagepolicies-setStoragePolicy」コマンドを使用して指定できます.ファイルまたはディレクトリの有効なストレージポリシーは、次のルールに従って解決されます.
  • ストレージポリシーを使用してファイルまたはディレクトリを指定した場合は、それを返します.
  • は、指定されていないファイルまたはディレクトリの場合、rootディレクトリの場合、デフォルトのストレージポリシーを返します.そうでなければ、親ディレクトリの有効なストレージポリシーが返されます.

  • 有効なストレージポリシーは、「storagepolicies-getStoragePolicy」コマンドで取得できます.

    コンフィギュレーション

  • dfs.storage.policy.Enabled-ストレージポリシーのプロパティを有効/無効にします.デフォルトはtrueで、有効になります.
  • dfs.datanode.data.dir-DataNodeのデータ格納パス.カンマで区切られた格納場所には、その格納タイプを表すタグが使用されます.
  • 格納場所/grid/dn/disk 0、格納タイプDISK、構成:[DISK]file:///grid/dn/disk0
  • 格納場所/grid/dn/ssd 0、格納タイプSSD、構成:[SSD]file:///grid/dn/ssd0
  • 格納場所/grid/dn/archive 0、格納タイプARCHIVE、構成:[ARCHIVE]file:///grid/dn/archive0
  • 格納場所/grid/dn/ram 0、格納タイプRAM_DISK,構成:[RAM_DISK]file:///grid/dn/ram0


  • 明示的なタグストレージタイプがない場合、デフォルトのストレージタイプはDISKです.

    Mover-新しいデータ移動ツール


    HDFSは、データをアーカイブするための新しいデータ移行ツールを追加しました.このツールはBalancerに似ています.HDFS内のファイルを定期的にスキャンし、ブロックの場所がストレージポリシーを満たしているかどうかを確認します.ストレージポリシーに違反したブロックの場合、コピーは異なるストレージタイプに移動してストレージポリシーの要件を満たします.可能な限り、ブロックコピーは常に同じノード内で移動しようとします.これが不可能な場合(たとえば、あるノードにターゲットストレージタイプがない場合)、ブロックコピーはネットワークを介して別のノードにコピーされます.
    hdfs mover [-p  | -f ]
    

    オプション
    意味
    -p
    移行するHDFSファイル/ディレクトリのスペース分割リストを指定します.
    -f
    移行するHDFSファイル/ディレクトリリストを含むローカルファイルを指定します.
    -pと-fのオプションが省略されている場合、デフォルトのパスはrootディレクトリです.

    ストレージポリシーコマンド


    コマンドヘルプ情報

    $ hdfs storagepolicies -help
    [-listPolicies]
    
    List all the existing block storage policies.
    
    [-setStoragePolicy -path  -policy ]
    
    Set the storage policy to a file/directory.
    
        The path of the file/directory to set storage policy 
      The name of the block storage policy                 
    
    [-getStoragePolicy -path ]
    
    Get the storage policy of a file/directory.
    
      The path of the file/directory for getting the storage policy 
    
    [-unsetStoragePolicy -path ]
    
    Unset the storage policy set for a file/directory.
    
      The path of the file/directory from which the storage policy will be   
            unset.                                                                 
    

    HDFS storagepoliciesには4つの操作があります.
    [-listPolicies]
    [-setStoragePolicy -path  -policy ]
    [-getStoragePolicy -path ]
    [-unsetStoragePolicy -path ]
    

    ストレージポリシーのリスト


    使用可能なすべてのストレージポリシーのリスト
    hdfs storagepolicies -listPolicies
    

    使用例
    $ hdfs storagepolicies -listPolicies
    Block Storage Policies:
            BlockStoragePolicy{PROVIDED:1, storageTypes=[PROVIDED, DISK], creationFallbacks=[PROVIDED, DISK], replicationFallbacks=[PROVIDED, DISK]}
            BlockStoragePolicy{COLD:2, storageTypes=[ARCHIVE], creationFallbacks=[], replicationFallbacks=[]}
            BlockStoragePolicy{WARM:5, storageTypes=[DISK, ARCHIVE], creationFallbacks=[DISK, ARCHIVE], replicationFallbacks=[DISK, ARCHIVE]}
            BlockStoragePolicy{HOT:7, storageTypes=[DISK], creationFallbacks=[], replicationFallbacks=[ARCHIVE]}
            BlockStoragePolicy{ONE_SSD:10, storageTypes=[SSD, DISK], creationFallbacks=[SSD, DISK], replicationFallbacks=[SSD, DISK]}
            BlockStoragePolicy{ALL_SSD:12, storageTypes=[SSD], creationFallbacks=[DISK], replicationFallbacks=[DISK]}
            BlockStoragePolicy{LAZY_PERSIST:15, storageTypes=[RAM_DISK, DISK], creationFallbacks=[DISK], replicationFallbacks=[DISK]}
    

    ストレージポリシーの設定


    ファイルまたはディレクトリのストレージポリシーの設定
    hdfs storagepolicies -setStoragePolicy -path  -policy 
    

    オプション
    意味
    -path
    ディレクトリまたはファイルのパス
    -policy
    ストレージポリシーの名前
    使用例
    $ hdfs storagepolicies -setStoragePolicy -path /data/lib -policy WARM
    Set storage policy WARM on /data/lib
    

    ストレージポリシーの取得


    ファイルまたはディレクトリのストレージポリシーの取得
    hdfs storagepolicies -getStoragePolicy -path 
    

    オプション
    意味
    -path
    ディレクトリまたはファイルのパス
    使用例
    $ hdfs storagepolicies -getStoragePolicy -path /data/lib
    The storage policy of /data/lib:
    BlockStoragePolicy{WARM:5, storageTypes=[DISK, ARCHIVE], creationFallbacks=[DISK, ARCHIVE], replicationFallbacks=[DISK, ARCHIVE]}
    

    ストレージポリシーの設定解除


    ファイルまたはディレクトリのストレージポリシーの設定を解除します.unsetコマンドの後に、最近の祖先のストレージポリシーが適用され、どの祖先にもポリシーがない場合は、デフォルトのストレージポリシーが適用されます.
    hdfs storagepolicies -unsetStoragePolicy -path 
    

    オプション
    意味
    -path
    ディレクトリまたはファイルのパス
    使用例
    $ hdfs storagepolicies -unsetStoragePolicy -path /data/lib 
    Unset storage policy from /data/lib
    $ hdfs storagepolicies -getStoragePolicy -path /data/lib  
    The storage policy of /data/lib is unspecified