[HADOOP] HDFS에 파일을 저장하면 복제됩니까?
HADOOPHDFS에 파일을 저장하면 복제됩니까?
저는 하둡을 처음 사용합니다.
hadoop -fs put commoad를 사용하여 Excel 파일을 저장하면 HDFS에 저장됩니다.
복제 계수는 3입니다.
내 질문은 : 3 사본을 가져 와서 각각 3 개의 노드에 저장합니까?
해결법
-
==============================
1.다음은 HDFS 작동에 대한 만화입니다.
다음은 HDFS 작동에 대한 만화입니다.
https://docs.google.com/file/d/0B-zw6KHOtbT4MmRkZWJjYzEtYjI3Ni00NTFjLWE0OGItYTU5OGMxYjc0N2M1/edit?pli=1
-
==============================
2.3 개의 사본을 가져 와서 각각 3 개의 노드에 저장합니까?
3 개의 사본을 가져 와서 각각 3 개의 노드에 저장합니까?
파이프 라이닝에서 복제가 수행됩니다.
-
==============================
3.HDFS 클라이언트 (이 경우 hadoop fs)에는 NameNode에서 이러한 파일을 저장할 위치의 블록 이름 및 데이터 노드 위치 (이름 노드가 랙 인식 스크립트에서이를 결정할 수있는 가장 가까운 위치 임)가 제공됩니다.
HDFS 클라이언트 (이 경우 hadoop fs)에는 NameNode에서 이러한 파일을 저장할 위치의 블록 이름 및 데이터 노드 위치 (이름 노드가 랙 인식 스크립트에서이를 결정할 수있는 가장 가까운 위치 임)가 제공됩니다.
그런 다음 클라이언트는 블록을 가장 가까운 데이터 노드에 복사합니다. 그런 다음 데이터 노드는 블록을 두 번째 데이터 노드 (바람직하게는 다른 랙에)에 복사해야하며, 마지막으로 두 번째는 세 번째 (세 번째와 동일한 랙에)에 복사됩니다.
따라서 클라이언트는 데이터 노드 중 하나에 만 데이터를 복사하고 프레임 워크는 데이터 노드 간의 복제를 처리합니다.
-
==============================
4.원본 파일을 하나 (또는 큰 파일의 경우) 블록에 저장합니다. 이 블록은 두 개의 다른 노드로 복제됩니다.
원본 파일을 하나 (또는 큰 파일의 경우) 블록에 저장합니다. 이 블록은 두 개의 다른 노드로 복제됩니다.
편집 : 내 대답은 Hadoop 2.2.0에 적용됩니다. 이전 버전에 대한 경험이 없습니다.
-
==============================
5.예, 3 노드 (최대 3 노드)로 복제됩니다.
예, 3 노드 (최대 3 노드)로 복제됩니다.
Hadoop 클라이언트는 데이터 파일을 더 작은 "블록"으로 나누고 해당 블록을 클러스터 전체의 다른 시스템에 배치합니다. 블록이 많을수록이 데이터에 대해 병렬로 작업 할 수있는 머신이 더 많아집니다. 동시에 이러한 시스템은 오류가 발생하기 쉬울 수 있으므로 데이터 손실을 피하기 위해 모든 데이터 블록이 한 번에 여러 시스템에있는 것이 안전합니다.
따라서 각 블록은로드 된대로 클러스터에 복제됩니다. Hadoop의 표준 설정은 클러스터에 각 블록의 사본을 3 개 갖는 것입니다. hdfs-site.xml 파일에서 dfs.replication 매개 변수를 사용하여 구성 할 수 있습니다.
데이터 복제는 전혀 Hadoop의 단점이 아니며 실제로 Hadoop을 효과적으로 만드는 데 필수적인 부분입니다. 우수한 내결함성을 제공 할뿐만 아니라 데이터에 가까운 맵 작업을 실행하여 네트워크에 추가로드를 피하는 데 도움이됩니다 (데이터 위치에 대해 읽어보십시오).
-
==============================
6.예, hdfs에서 n (복제 계수) 번호 사본을 만듭니다.
예, hdfs에서 n (복제 계수) 번호 사본을 만듭니다.
이 명령을 사용하여 파일의 위치를 찾고 #rack 파일을 찾으십시오. 모든 랙의 블록 이름은 무엇입니까
hadoop fsck / path / to / your / directory-파일 -blocks -locations -racks
-
==============================
7.복제를 사용하여 hdfs에 데이터를로드하려면이 명령을 사용하십시오.
복제를 사용하여 hdfs에 데이터를로드하려면이 명령을 사용하십시오.
hadoop fs -Ddfs.replication = 1 -put big.file /tmp/test1.file 및 -Ddfs.replication = 1은 데이터를 hdfs로로드하는 동안 생성 될 복제 복사본 수를 정의 할 수 있습니다
from https://stackoverflow.com/questions/20119320/when-i-store-files-in-hdfs-will-they-be-replicated by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hbase에서 두 테이블을 조인하는 방법 (0) | 2019.08.07 |
---|---|
[HADOOP] 네임 노드 형식이 데이터 노드 디스크 공간을 비우지 않습니다. (0) | 2019.08.07 |
[HADOOP] 하나의 매퍼 만 사용하는 하둡 gzip 입력 파일 [중복] (0) | 2019.08.07 |
[HADOOP] 맵 태스크가 항상 단일 노드에서 실행되는 이유 (0) | 2019.08.07 |
[HADOOP] 다른 사용자로 맵 축소 작업을 실행 (0) | 2019.08.07 |