1

私は Hadoop の初心者です (すでにいくつかのチュートリアルに従っています)。私は現在、Hadoop の基礎となるレプリケーション モデルを研究しています。モデルがどのように見えるか、コードがどこにあるかを知りたいです。

中間結果: Hadoop のパッケージを調べたところ、「org.apache.hadoop.hdfs.server.blockmanagement」というパッケージを見つけました。ここで、BlockManager.java のようないくつかのクラスを見つけました。しかし、私は行き止まりになりました。

Hadoop の基礎となるレプリケーション モデルを見つけることができるウェブサイトや本への参照を教えてください。ありますか?そうでない場合、何を提案しますか?

4

1 に答える 1

0

HDFS アーキテクチャ ガイドに高レベルの概要があります。

ソースのトレースに関しては、NameNode は DataNode にブロックを他の DataNode に転送するように指示します。このコマンドは、次の方法で DataNode ソースでトレースできます。

org.apache.hadoop.hdfs.server.datanode.DataNode.processCommand(DatanodeCommand[])
 -> org.apache.hadoop.hdfs.server.datanode.DataNode.processCommand(DatanodeCommand)
     See the DatanodeProtocol.DNA_TRANSFER command type in the switch
   -> org.apache.hadoop.hdfs.server.datanode.DataNode.transferBlocks(Block[], DatanodeInfo[][])
     -> org.apache.hadoop.hdfs.server.datanode.DataNode.transferBlock(Block, DatanodeInfo[])

NameNode で発行されているコマンドから逆方向に作業できます。

org.apache.hadoop.hdfs.server.namenode.DatanodeDescriptor.getReplicationCommand(int)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.handleHeartbeat(DatanodeRegistration, long, long, long, int, int)

pendingReplicationsここから、およびneededReplicationsインスタンス変数をトレースする必要があります

于 2012-05-16T10:39:12.677 に答える