2

fsimage のメタデータについて質問があります。ファイルの名前変更、権限の変更、ファイルの作成、ブロックの割り当てなど、ファイル システムの名前空間に対するすべての変更は fsimage 内にあると読みました。しかし、ブロックの位置データも?ブロックが保存されている場所 (データノード) に関する情報も含まれていますか? 私はこのソースから取得します: http://bradhedlund.com/2011/09/10/understanding-hadoop-clusters-and-the-network/ブロックが保存されている場所のメタデータは、データノードのブロックレポによって構築されます。これは本当ですか?Fsimage にはブロックの位置に関する情報が含まれていないのでしょうか?

4

3 に答える 3

3

Namenode は 2 種類のデータを保持します

ブロック位置データ: ファイルはブロックに分割されるため、NN はどの部分がどこにあるかを知る必要があります。このデータはメモリに保持され、ディスクに永続化されることはありません。DN は定期的に NN と通信し、ブロック レポートを共有します。

ファイル システム (メタデータ) : ファイル システム階層、アクセス許可など。この情報はディスクに保存されます。

namenodes が起動すると、fsimageからファイルシステムの「スナップショット」をロードし、編集からの編集ログをそれに適用します。このプロセスの後、新しいスナップショットを取得します。この時点から、namenode はクライアント/DN からのファイル システム要求を受け入れることができます。

于 2013-06-26T11:03:45.417 に答える
1

Hadoop は、fsimage ファイルを人間が読める形式に変換するツールを提供します。http://hadoop.apache.org/docs/r2.3.0/hadoop-project-dist/hadoop-hdfs/HdfsImageViewer.html

出力例:

bin/hdfs oiv -i fsimagedemo -p Indented -o fsimage.txt

   FSImage
     ImageVersion = -19
     NamespaceID = 2109123098
     GenerationStamp = 1003
     INodes [NumInodes = 12]
       Inode
         INodePath =
         Replication = 0
         ModificationTime = 2009-03-16 14:16
         AccessTime = 1969-12-31 16:00
         BlockSize = 0
         Blocks [NumBlocks = -1]
         NSQuota = 2147483647
         DSQuota = -1
         Permissions
           Username = theuser
           GroupName = supergroup
           PermString = rwxr-xr-x
   ...remaining output omitted...
于 2014-08-07T21:18:47.227 に答える