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