DB

[DB] 분산 컴퓨팅 (Hadoop)

jih0ssang 2024. 7. 1. 21:15

Hadoop

  • 대용량 데이터에 대한 분산처리 하는 오픈소스 자바 프레임워크
  • 기능
    • 대용량 데이터 저장    → HDFS
    • 데이터들을 이용해 연산 수행     → MapReduce

 

HDFS ( Hadoop Distributed File System, 하둡 분산형 파일 시스템)

  • 네임 노드
    • Master Node
    • 어떤 데이터 노드가 각 파일 블록을 관리하는지 등 파일 시스템에 대한 메타데이터를 보관
    •  
    • Worker Node 간 저장 공간 분할, 데이터 저장 위치 관리
  • 데이터 노드
    • Worker Node
    • 파일 읽기 및 쓰기를 위해 통신 
    • 한 데이터(블록)는 여러 데이터 노드 간 분산되어 저장 및 처리
    • 네임 노드에게 3초마다 Heart Beat를 보냄. Heart Beat에는 디스크 가용 공간, 데이터이동, 적재량 등의 정보가 들어있음. Hand Shaking 용으로, 10초이상 못받으면 사용하지 못한다고 인식됨

파일은 블록으로 구성되고 여러 차례 복제된다. 

즉, 파일의 블록별로 동일한 복제본이 여러 개 있다.

 

 

MapReduce

 

MapReduce 분산&병렬 처리 방식

1. 빅데이터가 들어옴
2. 데이터를 조각으로 나누어 여러 작업 노드에 분산 저장
3. 시스템(하둡)이 데이터를 대상으로 map() 함수를 적용함          

2. map() 함수는 데이터를 읽고 <key, value>형태로 자름
3. 시스템(하둡)이 <key, value> 데이터를 알파벳 순으로 재배치(Bear는 첫 번째 노드로~ Car는 두 번째 노드로~)
4. 시스템(하둡)이 그룹핑된 데이터를 reduce() 함수들에 배포
5. reduce() 함수는 <key, value>를 읽고 결과를 출력

 

** map()함수는 파일 조각을 입력으로 받아 공백을 기준으로 단어 쪼갬

'DB' 카테고리의 다른 글

[DB] 분산 컴퓨팅 (샤딩)  (0) 2024.07.01