728x90
[Read/Write Architecture]
Read Architecture는 Write Architecture의 반대로 흘러가는 개념이므로, Write Architecture 중심으로 기록하도록 한다. (깊이 공부해보고 작성한것이 아님을 감안!!)
아래 그림은 Hadoop에 Write 과정을 나타내는 다이어그램이다. 언어는 크게 중요한 부분이 아니므로 대략적인 흐름을 기억하려 한다.
- 먼저 기록하려는 파일이 있다고 가정해본다. 이 파일은 크기가 256MB이하라서 2개의 128MB의 Block으로 나누어진다. 이를 block a, b라고 하자.
- Application은 요청(file write request')을 통해 HDFS Client로 파일을 쓰겠다고 말한다.
- HDFS Client은 write requst를 NameNode 에게 보낸다. 그러면 NameNode는 그 HDFS Client에게 write permission과 DataNode의 IP address를 보낸다.
- HDFS Client는 받아온 IP address를 기준으로 데이터를 쓰기 시작한다.
이때 Write와 Copy가 연이어 발생하게 되는데, 이를 Data Copy Process라 하며, 이는 3가지 단계로 이루어져 있다.
[Data Copy Process]- Set up of Pipeline
HDFS Client은 NameNode에게서 DataNode가 복제가 가능한 상태인지를 확인하고 파이프라인을 생성한다 -> Core-Switch를 통해 첫번째 데이터노드와 TCP/IP Connection을 생성한다 -> 그리고 이어서 나머지 복사를 담당할 데이터노드들에게도 이를 알려서 준비를 한다. - Data Streaming and replication
Pipeline이 완성되고 나면, 첫번쨰 데이터노드는 데이터를 복제받으면서 두번째 데이터 노드로 복제를 시작한다. -> 마지막 데이터 노드의 복제가 완료되면 각각의 Rack의 지정된 위치에 블럭들이 배치되게 된다. - Shutdown of pipeline
블럭들이 잘 배치되게 되면, 해당 결과(Acknowledge)가 NameNode에게 잘 리턴되게 된다. -> 바뀐 DataNode의 상태가 NameNode에 업데이트 된다. -> HDFS Clients는 TCP/IP Connection을 닫기 위해 pipe-line을 닫게 된다.
- Set up of Pipeline
아래 링크를 참고하면서 보면 도움이 될듯하다.
728x90
'[Data Engineering] > [Hadoop]' 카테고리의 다른 글
[Hadoop/기록] 8. Hadoop map-reduce (WordCount / Python) (0) | 2021.10.06 |
---|---|
[Hadoop/기록] 7. Hadoop map-reduce (WordCount / Java) (0) | 2021.08.31 |
[Hadoop/기록] 5. Hadoop Architectures 훑기 (0) | 2021.08.29 |
[Hadoop/기록] 4. 하둡 User Common commands (0) | 2021.08.28 |
[Hadoop/기록] 3. Linux -> Hadoop 데이터 적재 과정(fs cmd 복습) (0) | 2021.08.27 |