본문 바로가기
빅데이터 분석기사,ADsP와 ADP

Hadoop Distributed File System(HDFS)에서의 파일 쓰기 및 읽기 과정

by 귀주대 2023. 12. 6.

 

Hadoop Distributed File System(HDFS)에서의 파일 쓰기 및 읽기 과정은 다음과 같은 단계로 이루어집니다.

파일 쓰기 과정

1. 파일 분할(파일 쪼개기): 클라이언트는 대용량 파일을 HDFS에 저장하기 위해 먼저 파일을 여러 개의 블록으로 분할합니다. 파일은 기본적으로 HDFS 블록 크기로 분할되며, 일반적으로 128MB 또는 256MB입니다.

2. 네임노드에 메타데이터 작성 요청: 클라이언트는 네임노드에 파일을 생성하기 위한 요청을 보냅니다. 이 요청에는 파일의 이름, 경로, 크기 등과 같은 메타데이터 정보가 포함됩니다.

3. 네임노드의 응답 및 데이터노드 할당: 네임노드는 파일을 생성하고 각 블록의 복제본을 저장할 데이터노드를 선정합니다. 또한, 클라이언트에게 파일을 쓰기 위한 데이터노드 목록을 반환합니다.

4. 데이터 블록 쓰기: 클라이언트는 각 데이터노드에 데이터 블록을 병렬로 쓰기 시작합니다. 파일의 각 블록은 복제본을 갖기 때문에 클라이언트는 각 블록의 복제본을 순차적으로 쓰지 않고 복제본들을 동시에 쓰게 됩니다.

5. 데이터노드 간 복제: 데이터노드는 각 블록을 복제하여 안정성을 제공합니다. 복제는 클라이언트가 쓴 블록을 다른 데이터노드에 복사하는 과정을 의미합니다.

작업 완료 및 네임노드 업데이트: 데이터 쓰기가 완료되면, 클라이언트는 작업 완료를 알리고 네임노드에 메타데이터 업데이트를 요청하여 파일 정보를 갱신합니다.

파일 읽기 과정

1. 파일 읽기 요청: 클라이언트가 파일을 읽기 위해 네임노드에 읽기 요청을 보냅니다. 요청에는 파일의 메타데이터 정보(블록 위치 등)가 포함됩니다.

2. 네임노드의 응답 및 데이터노드 할당: 네임노드는 클라이언트에게 읽기 위한 데이터노드 목록을 반환하고, 각 블록의 위치 정보를 제공합니다.

3. 데이터 블록 읽기: 클라이언트는 각 데이터노드로부터 데이터 블록을 병렬로 읽어 들입니다. 이때, 데이터노드는 클라이언트에게 요청된 블록을 제공합니다.

4. 클라이언트로 데이터 병합: 클라이언트는 각 블록에서 읽은 데이터를 하나의 파일로 병합하여 사용자에게 반환하거나 처리합니다.

5. 파일 읽기 완료: 클라이언트가 모든 블록의 데이터를 읽고 병합하면, 파일 읽기 과정이 완료됩니다.

이러한 파일 쓰기 및 읽기 과정을 통해 HDFS는 대용량 데이터의 안정성, 확장성, 병렬 처리 등을 지원하여 데이터를 효율적으로 관리하고 분석하는 데 사용됩니다.

 

댓글