티스토리 뷰

하둡(Hadoop)

한 줄 요약

"데이터가 너무 많아서 컴퓨터 한 대로는 못 처리하니까, 여러 대가 나눠서 처리하자" 는 개념의 오픈소스 플랫폼

 

❓왜 등장했냐면

구글이 웹 전체를 검색 인덱싱하려고 보니 데이터가 어마어마하게 많음. 슈퍼컴퓨터 한 대로는 불가능하고 비용도 너무 비쌈.

그래서 나온 아이디어가 "싼 컴퓨터 수백 대를 연결해서 같이 처리하자" 였고, 구글이 그 방법(GFS, MapReduce)을 논문으로 발표.

이걸 오픈소스로 구현한 게 하둡.


핵심 구성 2가지

1. HDFS (저장 담당)

쉽게 말하면 "분산 하드디스크"

파일 하나를 여러 조각으로 쪼개서 여러 컴퓨터에 나눠 저장. 게다가 같은 조각을 3벌씩 복사해두니까, 컴퓨터 한 대가 망가져도 데이터가 안 날아 감.

[파일: 100GB 로그]
  ↓ 쪼개기
  블록A → 컴퓨터1, 컴퓨터2, 컴퓨터3 (3벌 복제)
  블록B → 컴퓨터2, 컴퓨터4, 컴퓨터5
  블록C → 컴퓨터3, 컴퓨터1, 컴퓨터6

 

2. MapReduce (처리 담당)

쉽게 말하면 "나눠서 세고, 합쳐서 정리"

ex) 예를 들어 1억 줄 로그에서 에러 횟수를 세고 싶다면:

[Map 단계] - 각 컴퓨터가 자기 조각만 담당
  컴퓨터1: 에러 30개 발견
  컴퓨터2: 에러 45개 발견
  컴퓨터3: 에러 25개 발견

[Reduce 단계] - 결과를 모아서 합치기
  총 에러 = 30 + 45 + 25 = 100개

 

 


💡 비유로 이해하기

도서관 책 전수 조사 를 해야 한다고 해보자면 :

 

<방식 설명>

기존 방식 사서 1명이 100만 권 전부 혼자 확인 → 수개월 소요
하둡 방식 사서 1000명이 1000권씩 나눠서 동시에 확인 → 하루 만에 완료

 

👉 하둡은 이걸 컴퓨터로 함.

 

하둡의 한계와 그 이후

하둡 MapReduce는 디스크에 결과를 저장했다가 다시 읽는 방식이라 느리다는 단점이 있었음.

그래서 나온 게 Spark — 메모리에서 처리해서 훨씬 빠름.

요즘은 하둡 생태계(YARN, Hive, HBase 등)는 여전히 쓰이지만, 순수 MapReduce만 단독으로 쓰는 경우는 잘 없음.


⭐️ 시험 핵심 포인트

- HDFS는 구글 GFS 를 참고해 만든 오픈소스
- 블록 단위 저장 + 기본 3벌 복제 → 내결함성 확보
- MapReduce는 배치 처리 특화, 실시간 처리엔 부적합
- 마스터 노드(NameNode/ResourceManager) + 슬레이브 노드(DataNode/NodeManager) 구조
- 하둡 자체는 실시간 처리 불가 → 실시간은 Spark Streaming, Storm 사용