2012-05-16 3 views
1

우선, 제 질문을 읽어 주셔서 감사합니다!하둡 블록 관리

저는 하둡 (Hadoop) 초심자입니다. (필자는 이미 여러 가지 자습서를 따랐습니다). 현재 Hadoop의 기본 복제 모델을 연구 중입니다. 모델의 모양과 코드를 찾을 수있는 위치를 알고 싶습니다.

중간 결과 : Hadoop 패키지를 조사한 후 "org.apache.hadoop.hdfs.server.blockmanagement"패키지를 찾았습니다. 여기 BlockManager.java와 같은 여러 클래스가 있습니다. 그러나 나는 막 다른 골목에왔다.

Hadoop에서 기본 복제 모델을 찾을 수있는 웹 사이트/책에 대한 참조를 제공 할 수 있습니까? 있어요? 그렇지 않다면 무엇을 제안합니까?

정말 고마워요. 고마워요!

답변

0

HDFS 아키텍처 가이드에서 높은 수준의 개요가있다 :

소스를 추적에 관해서는, 네임 노드는 다른되는 DataNode에 블록을 전송하는 데이터 노드를 지시합니다. 당신이 pendingReplications를 추적해야합니다 여기에서

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

:

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[]) 

당신은 네임 노드에서 발행되는 명령에서 뒤쪽으로 작업 할 수 있습니다 다음과 같은 방법에서 데이터 노드 소스에서이 명령을 추적 할 수 있습니다 및 neededReplications 인스턴스 변수

+0

내 질문에 대답 해 주셔서 감사합니다. 나는 그것을 볼 것이다. :디 –