빈 데이터 노드를 찾는 방법은? 클라이언트가 데이터 노드 쓰기를 요청하는 경우. 어떤 알고리즘을 사용합니까?namenode 빈 데이터 노드를 찾는 방법?
답변
귀하의 질문에 대한 답변은 매우 복잡합니다. 대부분의 경우, Hadoop의 사용자 또는 HDFS의 관리자이기 때문에 NameNode가 블록을 쓸 노드를 정확하게 결정할 필요가 없을 것입니다. 하둡 확실한 가이드의 'Anatomy of a File Write'에서
: 그러나 당신이 정말로 궁금하다면, 다음 리소스를 살펴 걸릴
클라이언트를 ( DistributedFileSystem에) (작성 호출하여 파일을 만듭니다 그림 3-3의 1 단계). DistributedFileSystem 은 namenode에 대한 RPC 호출을 수행하여 파일 시스템의 네임 스페이스에 새 파일을 만듭니다.이 파일에는 연결된 블록이 없습니다 (2 단계). namenode는 파일에 이 이미 존재하지 않으며 클라이언트가 파일을 으로 만들 수있는 권한이 있는지 확인하기 위해 다양한 검사를 수행합니다. 이러한 검사가 통과되면 namenode는 새로운 파일을 기록합니다. 그렇지 않으면 파일 작성이 실패하고 클라이언트는 IOException을 던집니다. DistributedFileSystem은 클라이언트가 데이터 쓰기를 시작하기 위해 FSDataOutputStream 을 반환합니다. 읽기 경우와 마찬가지로 FSDataOutputStream은 데이터 노드 및 namenode와 통신하는 DFSOutputStream을 래핑합니다.
클라이언트가 데이터를 쓰면 (3 단계) DFSOutputStream이 패킷을 패킷으로 분할하여 데이터 큐라는 내부 큐에 씁니다. 데이터 큐는 DataStreamer에 의해 소비됩니다. 복제본을 저장하기에 적합한 데이터 노드 의 목록을 선택하여 namenode에 새 블록을 할당하도록 요청하는 책임입니다. 데이터 노드 목록은 파이프 라인을 형성합니다. 우리는 복제 수준이 3이라고 가정 할 것이므로 파이프 라인에 노드가 세 개 있습니다 ( ). DataStreamer는 패킷을 으로 스트리밍하고 패킷을 저장하는 파이프 라인의 첫 번째 데이터 노드에 파이프 라인의 두 번째 데이터 노드에 을 전달합니다. 마찬가지로 두 번째 데이터 노드는 패킷을 저장하고이를 파이프 라인의 세 번째 (및 마지막) 데이터 노드로 전달합니다.
당신이 그것을 단계별하려는 경우에도 최신 안정 ASF 하둡에서 소스 코드를 확인할 수 있습니다 https://github.com/apache/hadoop-common/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java#L346
- 1. namenode 백업을 수행하는 방법
- 2. 복구 Hadoop NameNode 실패
- 3. jquery로 텍스트 노드를 찾는 방법
- 4. Neo4j에서 특정 노드를 찾는 방법
- 5. 빈 값을 찾는 방법
- 6. JAXB가 빈 노드를 제외시키는 방법?
- 7. XPath에서 모든 빈 하위 트리를 찾는 방법
- 8. NameNode : java.net.BindException
- 9. 배열에서 빈 값을 찾는 방법
- 10. 다른 노드를 참조하는 연결된 목록에서 노드를 찾는 방법
- 11. hdfs에서 namenode 정보를 유지하는 방법
- 12. Hadoop 0.23.9 데이터 노드를 시작하는 방법
- 13. javascript : 주어진 innerhtml 부모 노드를 찾는 방법
- 14. 명령 줄에서 클러스터의 노드를 찾는 방법
- 15. 두 개의 동일한 텍스트 노드를 찾는 방법
- 16. 돼지 작업이 실행되는 노드를 찾는 방법
- 17. Go에서 쿼리를 통해 노드를 찾는 방법
- 18. 이진 검색 트리에서 노드를 찾는 방법
- 19. NameNode 읽기 작업시 DataNode 통신
- 20. adf 메뉴 트리에서 빈 노드를 제거하는 방법
- 21. IE가 "빈"텍스트 노드를 제거하지 못하도록하는 방법
- 22. Hadoop 보조 namenode 개념과 관련하여
- 23. Hadoop namenode 디스크 크기
- 24. 데이터 테이블을 찾는 방법
- 25. 빈 노드와 빈 자식 노드를 제거하십시오.
- 26. 찾는 방법 : 데이터 선택 방법
- 27. 네임 노드가 블록을 쓰는 데이터 노드를 결정하는 방법
- 28. Hadoop 용 namenode 포맷 설치
- 29. Javascript 미친 아이디어 노드를 찾는
- 30. namenode -format hdfs에서 파일 삭제
당신이 jtravaglini 하라구요 –