본문 바로가기

데이터

하둡이란? 하둡 에코시스템 구성 요소

Hadoop

하둡은 단일 소프트웨어가 아니라 분산 시스템을 구성하는 다수의 소프트웨어로 이루어진 집합체

분산 시스템의 구성 요소

HDFS, 분산 파일 시스템 

하둡에서 처리되는 데이터 대부분은 분산 파일 시스템인 HDFS에 저장된다.

YARN, 리소스 관리자

cpu나 메모리 등의 계산 리소스는 리소스 매니저인 YARN에 의해 관리된다.

  • YARN은 애플리케이션이 사용하는 cpu 코어와 메모리를 컨테이너라 불리는 단위로 관리한다.
  • 하둡에서 분산 애플리케이션을 실행하면 YARN이 클러스터 전체 부하를 보고 비어 있는 호스트부터 컨테이너를 할당한다.
  • 어느 애플리케이션에 얼마만큼의 리소스를 할당할 지 관리함으로써 모든 애플리케이션이 차질없이 실행되도록 제어한다.

MapReduce, 분산 데이터 처리

  • 맵리듀스도 YARN 상에서 동작하는 분산 애플리케이션 중 하나이며, 분산 시스템에서 데이터 처리를 실행하는 데 사용된다.
  • 맵리듀스는 임의의 자바 프로그램을 실행시킬 수 있기 때문에 비구조화 데이터를 가공하는데 적합하다.
  • 한 번 실행하면 분산 파일 시스템에서 대량의 데이터를 읽을 수 있지만 작은 프로그램을 실행하려면 오버헤드가 너무 크기 때문에 몇 초 안에 끝나버리는 쿼리 실행에는 적합하지 않다.

Hive, 쿼리엔진

  • SQL 등의 쿼리 언어에 의한 데이터 집계가 목적일 때 사용함
  • 쿼리를 자동으로 맵리듀스 프로그램으로 변환하는 소프트웨어이다.
  • 맵리듀스에 의존하고 있다.
  • 맵리듀스와 마찬가지로 시간이 걸리는 배치 처리에는 적합하나, 쿼리를 여러번 실행하는 데는 부적합하다.
  • 대량의 비구조화 데이터를 가공하는 무거운 배치 처리에 적합하다. 높은 처리량으로 리소스를 활용할 수 있기 때문에

Impala와 Presto, 대화형 쿼리 엔진

대화형의 쿼리 실행만 전문으로 하는 쿼리 엔진

  • 대화형 쿼리 엔진으로는 순간 최대 속도를 높이기 위해 모든 오버헤드가 제거되어 사용할 수 있는 리소스를 최대한 활용하여 쿼리를 실행한다.
  • hive로 완성한 구조화 데이터를 대화식으로 집계하고자 할 때는 지연이 적은 imapala, presto 등이 적합하다.

spark, 인 메모리 형의 고속 데이터 처리

스파크는 하둡과는 다른 독립된 프로젝트다.

  • 스파크의 특징은 대량의 메모리를 활용하여 고속화를 실현하는 것이다.
  • 맵리듀스가 개발된 시절에는 처리해야할 데이터의 양에 비하면 훨씬 적은 메모리밖에 사용할 수 없었으므로, 맵리듀스는 처리의 대부분을 디스크의 읽고 쓰기에 사용하였다.
  • 스파크의 특징 : 가능한 한 많은 데이터를 메모리상에 올린 상태로 두어 디스크에는 아무것도 기록하지 않는다.
  • 컴퓨터가 비정상 종료하면 중간까지 처리한 중간 데이터를 사라져 버리지만, 그때에는 처리를 다시 시도해서 잃어버린 데이터를 다시 만들면 된다는 것이 스파크의 개념이다.

MapReduce 대체하기

  • 스파크는 하둡을 대체하는 것이 아니라 맵리듀스를 대체하는 존재이다.
  • hdfs나 yarn은 스파크에서도 그대로 사용할 수 있다.
  • 하둡을 사용하지 않고 s3등을 이용한 구성도 가능하다.

출처 : <빅데이터를 지탱하는 기술>

반응형