TJ_Log

[Hadoop] hadoop의 기본개념 본문

STUDY/Hadoop

[Hadoop] hadoop의 기본개념

PTJ 2022. 5. 18. 15:10

1. 하둡이란?

하둡은 대용량 데이터를 분산처리 해주는 아파치 톱 레벨 오픈소스 자바 프레임워크입니다. 하둡은 대용량 데이터의 배치 프로세싱에 적합하며 만약 데이터의 실시간 엑세스를 원한다면 하둡은 적합하지 않습니다.

하둡의 핵심철학: 코드(가벼움)를 데이터(무거움)가 있는 곳으로 이동

  • 대부분의 경우 데이터의 크기가 소스코드보다 훨씬 크기 때문에 코드가 있는 곳으로 데이터로를 복사해오는 것보다 데이터가 있는 곳으로 코드를 복사해가는 것이 효율적

2. 하둡의 구성

구분 HDFS MapReduce
마스터 네임노드 잡트래커
슬레이브 데이터노드 태스크트래커

하둡의 분산 파일 시스템인 HDFS와 분산 처리 시스템 MapReduece는 물리적으로 같은 서버들에 공존하는 것이 일반적임, 두 시스템 모두 하나의 마스터와 다중 슬레이브 구조를 갖는데 다중 슬레이브의 경우 각 서버마다 HDFS 슬레이브와 MapReduce 슬레이브가 같이 놓인다.

 

3. HDFS(Hadoop Distributed File System)

  • HDFS마스터는 슬레이브 노드 사이의 저장 공간을 분할하고 데이터 저장 위치를 관리하는 책임을 담당
  • 네임노드는 어떤 데이터노드가 각 파일 블록을 관리하는지 등과 같은 파일시스템에 대한 메타데이터를 메모리에 보관
  • 데이터노드는 파일 읽기 및 쓰기 파이프라인을 위해 서로 통신
  • 파일은 블록으로 구성되며, 각 파일은 여러 차례 복제된다. 이는 파일의 블록별로 동일한 복사본이 여러 개 있다는 뜻이다.
  • HDFS는 장애가 발생해도 데이터를 잃지 않는 견고성, 하드웨어 추가로 성능을 향상하는 확장성, 클러스터 내의 여러 노드에 데이터분할 등의 기능이 있다.

블록(Blocks)이란?
HDFS에서 블록은 (디폴트)128MB로 매우 큽니다. HDFS의 파일은 블록 크기의 덩어리로 나뉘어(replication 설정에 따라 여러 노드에 중복되어 저장) 독립적인 단위로 저장됩니다. HDFS의 파일 사이즈가 블록 사이즈보다 작아도 블록 크기를 모두 차지 하지 않습니다.

 

분산파일시스템에서 블록 개념 3가지

  1. 하나의 디스크를 넘는 크기를 가질 수 있음
  2. 저장소 서브시스템 관리는 단순화 함(블록 크기가 같아 각 디스크에 몇 개가 존재하는지 파악이 쉬움, 블록은 permission과 같은 부분은 신경 쓸 필요 없어 데이터 덩어리만 가지고 있게함)
  3. 실패 시 데이터 복구를 위한 replication 구현 및 운영 시 잘 부합함 등의 장점이 있음

하트비트(heartbeat)
데이터노드는 네임노드에게 하트비트를 3초마다 보냅니다. 하트비트에는 디스크 가용 공간정보, 데이터이동, 적재량 등의 정보가 들어있습니다. 핸드셰이킹에 사용되며, 10초이상 못받으면 사용하지 못한다고 인식합니다.

 

4. 맵리듀스(MapReduce)

데이터를 처리하는데 있어 맵과 리듀스라는 두개의 작업을 사용합니다.

  1. Map은 한 데이터를 다른 데이터셋으로 변환하게 되며 key/value의 형태로 연관성있는 데이터를 분류하고 묶는 작업

  1. Reduce는 Map화한 작업 중 중복데이터를 제거하고 원하는 데이터를 추출하는 작업

  1. 셔플링 - 처리된 결과를 여러 머신에 이리저리 재배치하는 모습

개발자는 맵과 리듀스의 두 개의 함수만 구현하고 처리할 입력 데이터가 HDFS상의 어디에 있는지와 처리된 데이터가 어디 저장될지만 지정해주면 나머지는 프레임워크가 병렬로 처리해주게 된다.

 

 

 

 

참고

'STUDY > Hadoop' 카테고리의 다른 글

Hadoop - HDFS HA QJM(Quorum Journal Manager) 과 NFS(Network File System)  (0) 2022.05.18
Hadoop - CAP 이론  (0) 2022.05.18