[HADOOP] Hadoop 파일 시스템이 랜덤 I / O를 지원하지 않는 이유는 무엇입니까?
HADOOPHadoop 파일 시스템이 랜덤 I / O를 지원하지 않는 이유는 무엇입니까?
Google File System 및 Hadoop과 같은 분산 파일 시스템은 임의 I / O를 지원하지 않습니다. (이전에 작성한 파일은 수정할 수 없으며 쓰기 및 추가 만 가능합니다.)
왜 그들은 이런 파일 시스템을 설계 했습니까? 디자인의 중요한 장점은 무엇입니까?
P. Hadoop이 작성된 데이터 수정을 지원할 것이라는 것을 알고 있습니다. 그러나 그들은 성능이 좋지 않을 것이라고 말했다. 왜?
해결법
-
==============================
1.Hadoop은 파일을 배포하고 복제합니다. 파일이 복제되기 때문에 모든 쓰기 작업은 네트워크에서 복제 된 각 섹션을 찾아 파일을 업데이트해야합니다. 이렇게하면 작업 시간이 크게 늘어납니다. 파일을 업데이트하면 블록 크기를 초과하여 파일을 2 블록으로 분할 한 다음 두 번째 블록을 복제해야합니다. 내부 구조와 블록 / 분할 방법에 대해서는 잘 모릅니다.하지만 잠재적 인 합병증입니다.
Hadoop은 파일을 배포하고 복제합니다. 파일이 복제되기 때문에 모든 쓰기 작업은 네트워크에서 복제 된 각 섹션을 찾아 파일을 업데이트해야합니다. 이렇게하면 작업 시간이 크게 늘어납니다. 파일을 업데이트하면 블록 크기를 초과하여 파일을 2 블록으로 분할 한 다음 두 번째 블록을 복제해야합니다. 내부 구조와 블록 / 분할 방법에 대해서는 잘 모릅니다.하지만 잠재적 인 합병증입니다.
벌써 업데이트를하고 재실행 한 작업이 실패했거나 죽은 경우 어떻게할까요? 파일을 여러 번 업데이트 할 수 있습니다.
분산 시스템에서 파일을 업데이트하지 않으면 파일을 업데이트 할 때 파일을 사용하는 다른 사용자를 알 수 없으므로 조각이 저장되는 위치를 알 수 없습니다. 잠재적 인 타임 아웃 (블록이있는 노드가 응답하지 않음)으로 인해 일치하지 않는 데이터로 끝날 수 있습니다 (다시, hadoop의 내부 구조를 알지 못하고 노드가 다운 된 업데이트가 처리 될 수 있습니다. )
HDFS에서 파일을 업데이트하면 여러 가지 잠재적 인 문제가 발생할 수 있습니다. 그 중 어느 것도 극복 할 수 없지만, 확인하고 계산할 때 성능이 저하 될 것입니다.
HDFS의 주요 목적은 맵 축소에 사용할 데이터를 저장하는 것이므로 행 레벨 업데이트가이 단계에서 중요하지 않습니다.
-
==============================
2.데이터의 블록 크기와 Hadoop의 전체 아이디어로 인해 데이터를 이동시키지 않고 알고리즘을 데이터로 이동한다는 것입니다.
데이터의 블록 크기와 Hadoop의 전체 아이디어로 인해 데이터를 이동시키지 않고 알고리즘을 데이터로 이동한다는 것입니다.
Hadoop은 데이터의 비 실시간 일괄 처리를 위해 설계되었습니다. 응답 시간과 무작위 액세스면에서 기존의 RDBMS와 같은 것을 구현하는 방법을 살펴 보려면 Hadoop 위에 구축 된 HBase를 살펴보십시오.
from https://stackoverflow.com/questions/5769394/why-doesnt-hadoop-file-system-support-random-i-o by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] MapReduce는 여러 입력 파일을 어떻게 읽습니까? (0) | 2019.07.24 |
---|---|
[HADOOP] 성공했을 때 PIG 작업 로그 파일을 유지하는 방법. (0) | 2019.07.24 |
[HADOOP] PIG UDF는 다중 줄이있는 튜플을 다른 매퍼로 분할합니다. (0) | 2019.07.24 |
[HADOOP] 루프에서 'flume.conf에서 변경 사항 확인'받기 (0) | 2019.07.24 |
[HADOOP] RDD 파티션 방법 (0) | 2019.07.24 |