2012-05-16 56 views
1

首先,感謝您閱讀我的問題!Hadoop塊管理

我是Hadoop的初學者(我已經學過幾個教程)。我目前正在研究Hadoop中的底層複製模型。我想知道模型的外觀以及我可以在哪裏找到代碼。

中期結果: 在研究了Hadoop的包之後,我來找到包「org.apache.hadoop.hdfs.server.blockmanagement」。在這裏我找到了像BlockManager.java這樣的幾個類。但我已陷入死衚衕。

您可以給我任何參考的網站/書籍,我可以在Hadoop中找到底層的複製模型。有沒有?如果不是,你有什麼建議?

我真的很感謝你幫助我的時間,我感謝你!

回答

0

還有的HDFS架構指南中的高級概述:

至於跟蹤源,所述的NameNode將指示數據管理部一個一個塊轉移到其它的DataNodes。

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) 

在這裏,您將需要跟蹤pendingReplicationsneededReplications實例變量

+0

謝謝你的時間回答我的問題。我會着眼於它。 :d –