[HADOOP] hdfs는 저장할 데이터 노드를 어떻게 선택합니까?
HADOOPhdfs는 저장할 데이터 노드를 어떻게 선택합니까?
제목에서 알 수 있듯이 클라이언트가 파일을 hdfs에 쓰도록 요청하면 HDFS 또는 이름 노드가 파일을 저장할 데이터 노드를 어떻게 선택합니까? hdfs가 너무 큰 경우이 파일의 모든 블록을 동일한 노드 또는 동일한 랙의 일부 노드에 저장하려고합니까? hdfs는 파일을 원하는 데이터 노드에 저장할 수있는 API를 제공합니까?
해결법
-
==============================
1.데이터 노드를 선택하는 코드는 ReplicationTargetChooser.chooseTarget () 함수에 있습니다.
데이터 노드를 선택하는 코드는 ReplicationTargetChooser.chooseTarget () 함수에 있습니다.
의견은 다음과 같이 말합니다 :
원하는 데이터 노드에 파일을 저장하는 애플리케이션 용 API를 제공하지 않습니다.
-
==============================
2.HDFS에는 BlockPlacementPolicyDefault가 있습니다. 자세한 내용은 API 설명서를 확인하십시오. 사용자 지정 동작을 위해 BlockPlacementPolicy를 확장 할 수 있어야합니다.
HDFS에는 BlockPlacementPolicyDefault가 있습니다. 자세한 내용은 API 설명서를 확인하십시오. 사용자 지정 동작을 위해 BlockPlacementPolicy를 확장 할 수 있어야합니다.
게재 위치 동작이 특정 데이터 노드에만 해당해서는 안됩니다. 이것이 HDFS가 실패하고 확장 가능하도록 만드는 이유입니다.
-
==============================
3.다른 사람이 차트를 선호하는 경우 그림 (소스)이 있습니다.
다른 사람이 차트를 선호하는 경우 그림 (소스)이 있습니다.
-
==============================
4.이제 Hadoop-385 패치를 사용하여 동일한 노드에 파일의 모든 블록을 배치 할 수 있도록 블록 배치 정책을 선택할 수 있습니다 (복제 된 노드의 경우처럼). 이 주제에 관해이 블로그를 읽으십시오 - 댓글 섹션을보십시오.
이제 Hadoop-385 패치를 사용하여 동일한 노드에 파일의 모든 블록을 배치 할 수 있도록 블록 배치 정책을 선택할 수 있습니다 (복제 된 노드의 경우처럼). 이 주제에 관해이 블로그를 읽으십시오 - 댓글 섹션을보십시오.
-
==============================
5.
namenode가 데이터 노드에 데이터 저장을 지시 할 때이를 볼 수 있습니다. 첫 번째 복제본은 로컬 시스템에 저장되고 다른 두 개의 복제본은 다른 랙에 작성됩니다.
복제본이 실패하면 다른 복제본에서 데이터가 저장됩니다. 모든 복제본이 실패 할 확률은 자고있는 동안 머리에 팬이 떨어지는 것과 같습니다. 즉, 기회가 아주 적습니다.
from https://stackoverflow.com/questions/13129599/how-does-hdfs-choose-a-datanode-to-store by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop 작업의 CPU 시간은 무엇을 의미합니까? (0) | 2019.06.07 |
---|---|
[HADOOP] Hadoop .20 데이터 노드의 'GC 오버 헤드 한도 초과' (0) | 2019.06.07 |
[HADOOP] Hadoop HDFS - 마스터의 포트에 연결할 수 없음 (0) | 2019.06.07 |
[HADOOP] 원사 클라이언트 모드에서 원격 마스터 노드에서 스파크 작업을 제출하는 방법은 무엇입니까? (0) | 2019.06.07 |
[HADOOP] get "오류 : ZooKeeper에서 마스터 주소를 가져올 수 없습니다. znode data == null "Hbase 쉘을 사용할 때 (0) | 2019.06.07 |