[하둡] Hadoop 이란? - 대규모 데이터를 분산 처리하기 위한 오픈소스 프레임워크







1. 하둡(Hadoop)이란?

1.1 정의
하둡(Hadoop)은 대규모 데이터를 분산 처리하기 위한 오픈소스 프레임워크입니다.
즉, 한 대의 강력한 서버 대신 **수백~수천 대의 저가형 서버(노드)**를 묶어 대용량 데이터를 병렬로 처리할 수 있게 도와주는 시스템이에요.

1.2 개발 배경

  • 2003년 구글이 발표한 GFS(Google File System)MapReduce 논문이 시초입니다.

  • 이를 바탕으로 Doug Cutting이 오픈소스로 구현해 2005년경 Apache Hadoop 프로젝트로 발전했습니다.

  • 현재는 Apache Software Foundation이 유지·관리 중입니다.

1.3 이름 유래
“하둡(Hadoop)”은 개발자의 아들이 가지고 놀던 코끼리 인형 이름에서 따온 것입니다.
그래서 로고도 노란 코끼리예요 🐘.


2. 하둡의 핵심 구성요소

하둡은 크게 HDFSMapReduce 두 가지 핵심 컴포넌트로 이루어져 있습니다.


2.1 HDFS (Hadoop Distributed File System)

2.1.1 역할
HDFS는 분산 파일 시스템으로, 거대한 데이터를 여러 서버에 나누어 저장합니다.

2.1.2 구조

  • NameNode

    • 메타데이터(파일 이름, 블록 위치 등)를 관리하는 중앙 관리자 역할

    • 파일 내용을 직접 저장하지는 않음

  • DataNode

    • 실제 데이터 블록을 저장

    • 여러 대가 동시에 작동해 병렬 저장 가능

2.1.3 특징

  • 대용량 데이터 저장 최적화

  • 자동 복제(Replication): 데이터 블록을 여러 서버에 복제해 장애에 대비

  • 장애 복구(Self-healing): 노드 하나가 고장 나도 다른 복제본으로 자동 복구


2.2 MapReduce

2.2.1 역할
대용량 데이터를 병렬로 분산 처리하는 프로그래밍 모델입니다.

2.2.2 작동 방식

  • Map 단계: 데이터를 분할(Map)하고 각 노드에서 병렬 처리

  • Reduce 단계: 처리 결과를 합산(Reduce)하여 최종 결과 생성

2.2.3 예시
예를 들어, 대량의 로그 데이터에서 단어 빈도를 세고 싶다면:

  • Map: 각 단어를 (단어, 1) 형태로 출력

  • Reduce: 같은 단어를 묶어 합산


3. 하둡의 생태계(Ecosystem)

하둡은 단순한 파일 시스템이 아니라, 다양한 데이터 처리 도구들의 플랫폼 역할을 합니다.

다음은 하둡 생태계의 주요 구성요소들입니다 👇


3.1 YARN (Yet Another Resource Negotiator)

  • 리소스 관리자로, 하둡 클러스터 내의 CPU, 메모리 등을 효율적으로 배분합니다.

  • 기존 MapReduce만 가능하던 환경에서 Spark, Tez 등 다양한 엔진도 실행할 수 있게 확장시켰습니다.


3.2 Hive

  • SQL 문법을 이용해 하둡 데이터를 조회할 수 있는 데이터 웨어하우스 도구

  • “하둡용 SQL”이라고 보면 됩니다.

  • 예:

    SELECT count(*) FROM logs WHERE status='200';

3.3 Pig

  • 복잡한 MapReduce 코드를 간단한 스크립트 언어로 대체

  • 대량의 데이터 변환, 집계, 필터링에 유용


3.4 HBase

  • HDFS 위에 구축된 NoSQL 데이터베이스

  • Google의 BigTable 모델을 참고해 설계

  • 실시간 읽기/쓰기 가능


3.5 Sqoop

  • RDBMS ↔ Hadoop 간 데이터 전송 도구

  • MySQL, Oracle 등과 하둡을 연결할 때 사용


3.6 Flume

  • 로그나 이벤트 데이터를 실시간 스트리밍으로 수집해 하둡에 저장


3.7 Oozie

  • 하둡 작업(워크플로우)을 자동 스케줄링하는 워크플로우 관리자


4. 하둡의 장점

4.1 확장성 (Scalability)
서버를 수평으로 쉽게 확장 가능 (노드 추가만으로 성능 향상)

4.2 내결함성 (Fault Tolerance)
노드가 고장 나도 복제본 덕분에 데이터 손실 없이 복구 가능

4.3 비용 효율성 (Cost Efficiency)
고가의 장비 대신 범용 저가형 서버로 구성 가능

4.4 유연성 (Flexibility)
정형, 비정형, 반정형 데이터를 모두 처리 가능 (텍스트, 이미지, 로그 등)


5. 하둡의 단점

5.1 실시간 처리 한계
배치(batch) 처리 중심이라, 실시간 분석에는 부적합

5.2 복잡한 관리 구조
클러스터 구성 및 유지보수가 어려움

5.3 작은 데이터에 비효율적
소규모 데이터 처리 시 오히려 느림

5.4 보안 취약점
초기 설계 시 보안이 중요하지 않았기 때문에, Kerberos 설정 등을 따로 해야 함


6. 하둡 vs 스파크 (Spark)

구분하둡(MapReduce)스파크(Spark)
처리 방식배치 중심인메모리(메모리 중심)
속도느림매우 빠름
실시간 처리불가능가능
주요 언어JavaScala, Python, Java
사용 목적대용량 로그 분석실시간 스트리밍, 머신러닝

👉 정리: 최근에는 하둡보다는 Spark + Hadoop(HDFS) 구조가 더 많이 사용됩니다.
즉, HDFS는 저장, Spark는 처리 역할을 담당하는 방식입니다.


7. 하둡의 실제 활용 사례

7.1 네이버/카카오/쿠팡

  • 사용자 로그 및 검색 기록 분석

  • 추천 시스템 개발

7.2 금융권

  • 거래 패턴 분석 및 이상 거래 탐지

7.3 공공기관

  • 교통량, 기상데이터 등 대규모 데이터 분석

7.4 글로벌 기업

  • Facebook: Hive 개발 및 하둡 기반 데이터 분석

  • Yahoo: 하둡 대규모 클러스터 운영


8. 하둡의 현재와 미래

8.1 현재 동향

  • 클라우드 환경(AWS EMR, GCP Dataproc, Azure HDInsight)으로 이동

  • 하둡 자체보다는 Spark, Presto, Kafka 등과의 연계 중심으로 발전

8.2 미래 전망

  • 온프레미스 빅데이터 플랫폼으로는 여전히 유효

  • AI·ML 데이터 파이프라인의 스토리지 계층으로 재활용


9. 요약 정리

항목내용
이름Apache Hadoop
핵심 구성HDFS, MapReduce, YARN
주요 장점대용량 분산 처리, 확장성, 내결함성
단점실시간 처리 어려움, 복잡한 관리
대체 기술Apache Spark, Flink
대표 활용 분야로그 분석, 데이터 웨어하우스, 추천 알고리즘

10. 결론

하둡은 대용량 데이터를 효율적으로 저장하고 처리하기 위한 혁신적인 분산 시스템으로,
오늘날의 AI, 머신러닝, 빅데이터 분석의 기초를 마련한 기술입니다.
비록 Spark나 클라우드 기술의 등장으로 직접적인 사용은 줄었지만,
그 개념과 아키텍처는 여전히 데이터 엔지니어링의 근간으로 자리 잡고 있습니다.


 

댓글

이 블로그의 인기 게시물

[8/9] 1184회 로또 당첨번호 추천!!

[AWS] SCP, OU, Policy 사용하기 !!

[AWS] AWS Activate 스타트업 $1,000 지원 성공

[Gemini API] 구글 생성형 AI API 모델별 요금 및 청구 방식!!

[8/2] 1183회 로또 당첨번호 추천!!

[Shopizer E‑commerce] Shopizer란?

[Vault] 온프레미스 구축 개요!!