Hadoop과 NoSQL이란? HDFS·MapReduce·YARN과 MongoDB·Redis·HBase 차이 쉽게 이해하기

1장 Hadoop과 NoSQL은 왜 등장했을까#

데이터가 많지 않다면 한 대의 Server와 하나의 관계형 Database만으로도 충분히 처리할 수 있습니다.

예를 들어 작은 쇼핑몰에서 다음 정도의 데이터를 관리한다고 생각해봅시다.

  • 회원 1,000명
  • 상품 500개
  • 하루 주문 200건
  • 하루 접속 Log 수천 건

이 정도 규모라면 일반적인 Server와 관계형 Database로도 충분히 운영할 수 있습니다.

하지만 서비스가 커지면 상황이 달라집니다.

  • 회원 수천만 명
  • 하루 수억 건의 접속 Log
  • 수억 장의 Image
  • 대규모 검색 기록
  • SNS Text
  • IoT Sensor Data
  • 거래 기록

처럼 데이터가 빠르게 증가할 수 있습니다.

한 대의 컴퓨터에 계속 더 큰 Disk와 CPU를 추가하는 방식에는 한계가 있습니다.

그래서 생각을 바꿉니다.

아주 강력한 컴퓨터 한 대 대신 여러 대의 컴퓨터를 연결해 데이터를 나누어 저장하고 처리하면 어떨까?

이러한 분산 저장과 분산 처리를 대표하는 빅데이터 기술 가운데 하나가 Hadoop입니다.

한편 기존 관계형 Database의 고정된 Table 구조가 모든 데이터에 적합한 것도 아닙니다.

JSON 문서, Cache, 대규모 Column 데이터, 복잡한 관계망처럼 목적에 따라 더 유연한 저장 방식이 필요해졌습니다.

이때 등장하는 것이 NoSQL입니다.

가장 먼저 둘을 구분하면 다음과 같습니다.

구분 Hadoop NoSQL
핵심 목적 대용량 데이터 분산 저장·처리 다양한 형태의 데이터를 유연하게 저장·조회
핵심 개념 여러 컴퓨터를 하나의 Cluster처럼 활용 관계형 Table 이외의 다양한 데이터 모델
대표 기술 HDFS·MapReduce·YARN MongoDB·Redis·HBase·Cassandra·Neo4j

즉 Hadoop과 NoSQL은 같은 기술이 아닙니다.


2장 Hadoop이란 무엇인가#

Hadoop은 대용량 데이터를 여러 컴퓨터에 분산하여 저장하고 처리하기 위한 Java 기반 오픈소스 Framework입니다.

초보자라면 다음 문장으로 먼저 이해하면 됩니다.

Hadoop은 여러 대의 컴퓨터를 묶어 거대한 데이터 저장·처리 시스템처럼 사용하는 기술이다.

예를 들어 100TB의 데이터가 있다고 생각해봅시다.

한 대의 컴퓨터에 모든 데이터를 넣고 처리하면 저장공간과 처리성능에 한계가 생길 수 있습니다.

Hadoop에서는 데이터를 여러 장비에 나누어 저장할 수 있습니다.

  • Server 1 → 데이터 일부
  • Server 2 → 데이터 일부
  • Server 3 → 데이터 일부
  • Server 4 → 데이터 일부

그리고 계산 역시 여러 장비에서 나누어 수행할 수 있습니다.

쉽게 표현하면 다음과 같습니다.

분산 저장 + 분산 처리 = Hadoop의 핵심

ADsP에서는 Hadoop의 핵심 구성요소 세 가지를 먼저 기억해야 합니다.

  • HDFS → 저장
  • MapReduce → 처리
  • YARN → 자원 관리

3장 HDFS란 무엇인가#

HDFS는 Hadoop Distributed File System의 약자입니다.

한국어로는 Hadoop 분산 파일 시스템이라고 합니다.

역할은 매우 명확합니다.

대용량 파일을 여러 컴퓨터에 나누어 저장하는 것입니다.

예를 들어 아주 큰 파일이 있다고 가정하겠습니다.

하나의 Server에 전부 저장하는 대신 데이터를 여러 조각으로 나누어 여러 Node에 저장합니다.

개념적으로 보면 다음과 같습니다.

대용량 파일 → 여러 Block으로 분할 → 여러 Node에 분산 저장

따라서 ADsP에서 HDFS가 나오면 가장 먼저 저장을 연결해야 합니다.

왜 분산해서 저장할까#

데이터를 여러 장비에 분산하면 한 대의 Disk 용량에만 의존하지 않아도 됩니다.

Cluster에 장비를 추가하면서 저장용량을 확장할 수도 있습니다.

즉 한 대의 초대형 Server에 모든 것을 의존하기보다 여러 일반 Server를 묶어 큰 규모의 데이터를 처리하는 방식입니다.

핵심 암기#

HDFS = 대용량 데이터 분산 저장


4장 MapReduce란 무엇인가#

MapReduce는 Hadoop에서 대규모 데이터를 분산 처리하기 위해 사용된 대표적인 처리 방식입니다.

이름 그대로 두 단계로 생각하면 이해하기 쉽습니다.

  • Map → 작업을 나누어 처리
  • Reduce → 처리 결과를 모아 취합

예를 들어 수십억 개의 단어가 들어 있는 문서에서 각 단어가 몇 번 등장했는지 계산한다고 생각해봅시다.

데이터 전체를 한 컴퓨터가 계산하는 대신 여러 컴퓨터가 각각 일부 데이터를 담당합니다.

Map 단계#

각 Node가 자신에게 주어진 데이터에서 단어를 계산합니다.

예를 들어:

  • Node A → Hadoop 20회
  • Node B → Hadoop 35회
  • Node C → Hadoop 15회

처럼 부분 결과를 만듭니다.

Reduce 단계#

부분 결과를 합칩니다.

20 + 35 + 15 = 70

최종적으로 Hadoop이라는 단어가 70회 등장했다는 결과를 얻습니다.

즉:

Map = 나누어서 처리

Reduce = 결과를 모아서 처리

라고 이해하면 됩니다.


5장 HDFS와 MapReduce의 차이는 무엇인가#

둘은 시험에서 자주 함께 등장하지만 역할이 다릅니다.

구성요소 역할 핵심
HDFS 데이터 저장 분산 저장
MapReduce 데이터 계산 분산 처리

아주 쉽게 외우면:

HDFS는 저장

MapReduce는 처리

입니다.

컴퓨터에 비유하면 HDFS는 대규모 저장장치 역할에 가깝고 MapReduce는 저장된 데이터를 계산하는 처리 방식에 가깝습니다.


6장 YARN이란 무엇인가#

YARN은 Hadoop Cluster의 자원을 관리하는 역할을 담당합니다.

여러 컴퓨터를 하나의 Cluster로 묶으면 다음 문제가 생깁니다.

  • 어떤 작업을 어느 Server에서 실행할 것인가?
  • CPU와 Memory를 얼마나 배분할 것인가?
  • 동시에 여러 작업이 요청되면 어떻게 조정할 것인가?

이런 Cluster 자원관리 문제를 담당하는 것이 YARN입니다.

Hadoop 2.x 계열부터 중요한 구성요소로 도입되었습니다.

초보자는 다음과 같이 이해하면 쉽습니다.

YARN은 Hadoop Cluster의 작업 관리자다.

여러 작업이 들어왔을 때 사용 가능한 CPU와 Memory 같은 자원을 배분하고 실행을 조정합니다.

핵심 암기#

YARN = Cluster 자원 관리


7장 Hadoop의 세 가지 핵심 구성요소#

시험에서는 다음 세 가지를 확실하게 구분해야 합니다.

구성요소 전체 이름 역할
HDFS Hadoop Distributed File System 분산 저장
MapReduce MapReduce 분산 처리
YARN Yet Another Resource Negotiator Cluster 자원 관리

초보자용 암기는 더 간단합니다.

HDFS → 저장

MapReduce → 계산

YARN → 관리

이 세 단어만 정확하게 연결해도 상당수 기본 문제를 구분할 수 있습니다.


8장 Hadoop Ecosystem이란 무엇인가#

Hadoop만으로 모든 데이터 작업을 편하게 처리할 수 있는 것은 아닙니다.

실제 빅데이터 환경에서는:

  • SQL처럼 데이터를 조회하고 싶을 수 있고
  • 관계형 Database에서 데이터를 가져와야 할 수도 있고
  • Script 형태로 데이터를 처리하고 싶을 수도 있고
  • 빠르게 특정 데이터를 조회해야 할 수도 있습니다.

그래서 Hadoop 주변에 다양한 도구가 발전했습니다.

이를 흔히 Hadoop Ecosystem이라고 부릅니다.

ADsP에서는 대표적으로 다음 네 가지를 기억합니다.

  • Hive
  • HBase
  • Sqoop
  • Pig

9장 Hive란 무엇인가#

Hive는 Hadoop에 저장된 데이터를 SQL과 유사한 방식으로 분석할 수 있도록 해주는 도구입니다.

Hadoop의 분산처리 방식을 직접 작성하기 어려운 사용자가 친숙한 SQL 방식으로 데이터를 다룰 수 있도록 도와줍니다.

예를 들어 SQL을 사용해본 사람이라면 다음과 같은 사고방식에 익숙합니다.

SELECT ... FROM ... WHERE ...

Hive는 Hadoop 환경에서도 이와 비슷한 질의 방식을 사용할 수 있게 해줍니다.

Hive가 필요한 이유#

MapReduce 프로그램을 직접 작성하는 것보다 SQL에 익숙한 분석가가 데이터를 조회하고 분석하기 쉽게 만들 수 있습니다.

제공된 ADsP 학습자료에서는 Hive를 다음과 같이 정리합니다.

Hive = SQL로 Hadoop 데이터 분석 + Batch 처리

시험 핵심#

Hive가 나오면 먼저:

SQL

을 연결합니다.


10장 HBase란 무엇인가#

HBase는 Hadoop 환경에서 사용할 수 있는 Column 계열 NoSQL Database입니다.

HDFS를 기반으로 대규모 데이터를 저장하면서 특정 데이터에 대한 빠른 Random Access가 필요한 상황에 활용할 수 있습니다.

HDFS 자체는 대규모 파일을 저장하는 데 적합하지만 일반적인 Database처럼 특정 Record를 계속 빠르게 찾아 수정하는 용도와는 성격이 다릅니다.

HBase는 이런 Hadoop 환경에서 Database 형태의 접근을 제공하는 역할을 합니다.

핵심#

HBase = Hadoop Ecosystem + Column형 NoSQL

시험에서는 두 위치에서 모두 등장할 수 있습니다.

  • Hadoop Ecosystem의 도구
  • NoSQL의 Column형 Database

이 점을 기억해야 합니다.


11장 Sqoop이란 무엇인가#

Sqoop은 관계형 Database와 Hadoop 사이에서 데이터를 이동시키는 도구입니다.

예를 들어 회사의 기존 데이터가 MySQL에 있다고 생각해봅시다.

분석을 위해 이를 Hadoop 환경으로 옮겨야 할 수 있습니다.

흐름은 다음과 같습니다.

MySQL → Sqoop → Hadoop

반대로 Hadoop 데이터를 관계형 Database로 이동하는 작업에도 사용할 수 있습니다.

즉:

RDBMS ↔ Hadoop

사이의 데이터 연동이 핵심입니다.

시험 핵심#

Sqoop = DB와 Hadoop 연결

이라고 기억하면 쉽습니다.


12장 Pig란 무엇인가#

Pig는 대규모 데이터를 처리하기 위한 Script 기반 도구입니다.

Pig Latin이라는 Script 언어를 사용합니다.

복잡한 MapReduce 작업을 보다 쉽게 표현할 수 있도록 만들어졌습니다.

제공된 학습자료에서는:

Pig = Pig Latin + 대용량 데이터 처리 + MapReduce 대안

으로 정리합니다.

Hive와 Pig가 모두 데이터 처리에 사용되기 때문에 혼동할 수 있습니다.

쉽게 구분하면:

  • Hive → SQL에 익숙한 사용자
  • Pig → Script 기반 데이터 처리

로 기억할 수 있습니다.


13장 Hadoop Ecosystem 핵심 비교#

도구 역할 시험 암기
Hive SQL 형태로 Hadoop 데이터 분석 SQL
HBase HDFS 기반 Column NoSQL NoSQL·Column
Sqoop RDBMS와 Hadoop 데이터 이동 DB ↔ Hadoop
Pig Pig Latin을 이용한 데이터 처리 Script

시험 직전에는 다음처럼 줄여서 기억할 수 있습니다.

Hive → SQL

HBase → NoSQL

Sqoop → 이동

Pig → Script


14장 Hadoop 전체 구조를 하나의 회사로 이해하기#

기업이 하루에 수억 건의 Log를 생성한다고 생각해봅시다.

먼저 Log를 여러 Server에 저장해야 합니다.

→ HDFS

저장한 Log를 여러 Server가 나누어 계산합니다.

→ MapReduce

Cluster의 CPU와 Memory, 작업 실행을 관리합니다.

→ YARN

분석가가 SQL 방식으로 Log를 조회합니다.

→ Hive

특정 데이터를 빠르게 조회할 수 있는 NoSQL 저장소가 필요합니다.

→ HBase

기존 MySQL 데이터를 Hadoop으로 이동합니다.

→ Sqoop

Script 방식으로 대규모 데이터를 처리합니다.

→ Pig

이렇게 연결하면 각 기술의 역할이 자연스럽게 구분됩니다.


15장 NoSQL이란 무엇인가#

NoSQL은 관계형 Database의 Table 구조와는 다른 다양한 데이터 모델을 사용하는 Database 계열입니다.

NoSQL이라는 이름은 흔히 Not Only SQL로 설명됩니다.

핵심은 SQL을 전혀 사용할 수 없다는 의미가 아닙니다.

중요한 것은 관계형 Database의 고정된 Table 중심 구조만을 사용하는 것이 아니라 목적에 따라 더 다양한 데이터 모델을 사용할 수 있다는 것입니다.

초보자는 다음처럼 이해하면 쉽습니다.

RDBMS가 표 형태의 관계를 중심으로 데이터를 관리한다면 NoSQL은 Document, Key-Value, Column, Graph 등 다양한 방식으로 데이터를 저장할 수 있다.


16장 NoSQL은 왜 등장했을까#

관계형 Database는 매우 강력합니다.

하지만 모든 데이터가 항상 일정한 Table 구조를 갖는 것은 아닙니다.

예를 들어 서비스의 사용자 Profile이 다음처럼 계속 달라진다고 생각해봅시다.

사용자 A:

  • 이름
  • 이메일

사용자 B:

  • 이름
  • 이메일
  • SNS 계정
  • 관심상품

사용자 C:

  • 이름
  • 전화번호
  • 주소
  • 관심상품
  • 최근검색어

서비스 변화에 따라 데이터 구조가 자주 바뀐다면 보다 유연한 데이터 저장 방식이 유리한 경우가 있습니다.

또 다음과 같은 요구사항도 있을 수 있습니다.

  • 매우 빠른 Cache
  • 대규모 분산 저장
  • 관계망 탐색
  • JSON Document 저장

이런 서로 다른 목적에 맞춰 여러 종류의 NoSQL Database가 사용됩니다.


17장 RDBMS와 NoSQL은 무엇이 다른가#

관계형 Database는 Table과 관계를 중심으로 데이터를 구성합니다.

예를 들면:

  • MySQL
  • Oracle
  • PostgreSQL
  • SQL Server

등이 대표적입니다.

NoSQL에는 대표적으로:

  • MongoDB
  • HBase
  • Cassandra
  • Redis
  • Neo4j

등이 있습니다.

기본적인 차이를 보면 다음과 같습니다.

구분 RDBMS NoSQL
기본 구조 Table Document·Key-Value·Column·Graph 등
Schema 비교적 명확하고 구조적 상대적으로 유연한 모델 가능
관계 Table 관계 중요 제품 유형에 따라 다름
대표 제품 MySQL·Oracle·PostgreSQL MongoDB·Redis·HBase·Neo4j

다만 NoSQL을 단순히 Schema가 전혀 없는 Database라고만 이해하면 너무 단순합니다.

NoSQL 제품마다 데이터 모델과 구조적 제약이 다르므로 핵심은 관계형 Table 이외의 다양한 데이터 모델을 사용한다는 점입니다.


18장 Document형 NoSQL이란 무엇인가#

Document Database는 하나의 데이터를 Document 형태로 저장합니다.

대표적인 제품이 MongoDB입니다.

JSON과 비슷한 구조로 생각하면 이해하기 쉽습니다.

예를 들어 사용자 한 명을 다음과 같이 표현할 수 있습니다.

{
  "name": "김민수",
  "age": 35,
  "skills": ["Java", "Python"],
  "address": {
    "city": "Seoul"
  }
}

관계형 Database라면 여러 Table로 나눌 수 있는 정보를 하나의 Document 안에 유연하게 저장할 수 있습니다.

MongoDB에서는 실제 저장 형식으로 BSON을 사용합니다.

핵심#

Document형 → MongoDB → JSON/BSON 형태


19장 Column형 NoSQL이란 무엇인가#

Column 계열 Database는 대규모 데이터를 Column 중심의 구조로 관리하는 데 적합한 NoSQL 유형입니다.

제공된 ADsP 학습자료의 대표 제품은:

  • HBase
  • Cassandra

입니다.

특히 HBase는 Hadoop HDFS 기반 환경과 밀접하게 연결됩니다.

시험 핵심#

Column → HBase·Cassandra

라고 기억합니다.


20장 Key-Value형 NoSQL이란 무엇인가#

Key-Value Database는 매우 단순한 구조를 사용합니다.

다음과 같이 생각할 수 있습니다.

Key → Value

예:

user:1001 → 김민수

session:ABC123 → 로그인 정보

대표적인 제품은 Redis입니다.

Key를 알고 있다면 연결된 값을 빠르게 찾을 수 있습니다.

그래서 Redis는 Cache나 Session 관리 등 빠른 읽기·쓰기가 필요한 환경에서 자주 활용됩니다.

핵심#

Key-Value → Redis → 빠른 읽기·쓰기·Cache


21장 Graph형 NoSQL이란 무엇인가#

Graph Database는 데이터 자체뿐 아니라 데이터 사이의 관계가 중요한 문제를 처리하는 데 적합합니다.

대표 제품은 Neo4j입니다.

예를 들어 SNS 관계를 생각해봅시다.

  • 김민수 → 이지현의 친구
  • 이지현 → 박철수의 친구
  • 김민수 → 박철수를 팔로우

이런 데이터를 Graph 형태로 표현하면:

  • 사람 → Node
  • 관계 → Edge

로 나타낼 수 있습니다.

Graph Database는 다음과 같은 문제에 활용할 수 있습니다.

  • SNS 관계망
  • 추천
  • 사기 거래 관계 분석
  • 지식 Graph

핵심#

Graph → Neo4j → 관계망


22장 NoSQL 4가지 유형 한눈에 보기#

유형 대표 제품 핵심 특징
Document MongoDB JSON·BSON Document
Column HBase·Cassandra 대규모 Column 데이터
Key-Value Redis 빠른 읽기·쓰기·Cache
Graph Neo4j 관계망 데이터

시험 직전에는 다음 조합부터 기억합니다.

MongoDB → Document

HBase·Cassandra → Column

Redis → Key-Value

Neo4j → Graph


23장 MongoDB는 왜 Document Database인가#

MongoDB에서는 하나의 Record를 Document 형태로 저장할 수 있습니다.

예를 들어 상품정보가 다음처럼 다양하다고 하겠습니다.

노트북:

  • CPU
  • RAM
  • SSD

의류:

  • Size
  • Color
  • Material

관계형 Database에서는 상품 유형에 따라 구조를 설계하는 과정이 필요합니다.

Document 방식에서는 상품별로 필요한 속성을 Document에 보다 유연하게 표현할 수 있습니다.

그래서 빠르게 변화하는 Application 데이터와 잘 맞는 경우가 있습니다.

ADsP에서는 세부 설계보다는:

MongoDB = Document형 NoSQL

이라는 연결이 가장 중요합니다.


24장 Redis는 왜 빠른가#

Redis는 대표적인 Key-Value형 데이터 저장소입니다.

특정 Key에 연결된 Value를 빠르게 찾는 방식이 핵심입니다.

예를 들어 Web Service에서 사용자의 Session을 찾는다고 생각해봅시다.

session:7A91B → 사용자 1001 로그인 정보

같이 저장하면 Key를 이용해 빠르게 접근할 수 있습니다.

그래서 다음과 같은 용도로 많이 연결해서 이해합니다.

  • Cache
  • Session
  • 빠른 조회

ADsP에서는:

Redis = Key-Value

를 우선 기억하면 됩니다.


25장 HBase는 Hadoop인가 NoSQL인가#

시험을 공부하다 보면 혼란스러운 부분입니다.

정답은 두 관점 모두에서 등장할 수 있다는 것입니다.

HBase는:

  • Hadoop Ecosystem에 포함되는 기술이고
  • 동시에 Column 계열 NoSQL Database입니다.

즉:

HBase = Hadoop Ecosystem의 NoSQL Database

라고 이해하면 됩니다.

HDFS를 기반으로 하면서 대규모 데이터를 Column 방식으로 관리하고 Random Access를 지원하는 특징이 있습니다.


26장 MySQL은 NoSQL인가#

아닙니다.

MySQL은 대표적인 관계형 데이터베이스 관리 시스템 RDBMS입니다.

시험에서 매우 자주 혼동시키는 부분입니다.

NoSQL#

  • MongoDB
  • HBase
  • Redis
  • Cassandra
  • Neo4j

관계형 Database#

  • MySQL
  • Oracle
  • PostgreSQL
  • SQL Server

따라서 다음 문제가 나온다면:

다음 중 NoSQL이 아닌 것은?

선택지에 MySQL이 있다면 관계형 Database인지 확인해야 합니다.


27장 PostgreSQL과 Oracle도 NoSQL인가#

ADsP 시험 기준으로 다음 제품들은 관계형 Database입니다.

MySQL

Oracle

PostgreSQL

SQL Server

따라서 기본 분류에서 NoSQL로 선택하면 안 됩니다.

반대로 다음 제품들은 NoSQL 대표 사례입니다.

MongoDB

HBase

Cassandra

Redis

Neo4j


28장 Hadoop과 NoSQL의 차이는 무엇인가#

초보자가 가장 쉽게 혼동하는 부분입니다.

Hadoop을 Database의 한 종류라고 생각하거나 NoSQL을 Hadoop 구성요소라고 생각할 수 있습니다.

하지만 목적이 다릅니다.

Hadoop#

대규모 데이터를 여러 컴퓨터에 분산 저장하고 처리하는 Framework입니다.

핵심:

  • HDFS
  • MapReduce
  • YARN

NoSQL#

관계형 Table 이외의 다양한 모델로 데이터를 저장하는 Database 계열입니다.

핵심:

  • Document
  • Column
  • Key-Value
  • Graph

따라서:

Hadoop = 분산 데이터 처리 환경

NoSQL = 데이터 저장 방식·Database 계열

이라고 먼저 구분하는 것이 좋습니다.


29장 Hadoop과 NoSQL은 함께 사용할 수 있는가#

가능합니다.

대표적인 사례가 HBase입니다.

HBase는 Hadoop Ecosystem에서 HDFS를 기반으로 데이터를 저장하면서 NoSQL Database 역할을 합니다.

즉 Hadoop과 NoSQL은 경쟁 관계라기보다 필요에 따라 함께 사용될 수 있습니다.

개념적으로:

Hadoop 환경 → HDFS → HBase

처럼 연결해서 이해할 수 있습니다.


30장 관계형 DB가 있는데 왜 NoSQL을 사용할까#

NoSQL이 존재한다고 해서 관계형 Database가 필요 없어진 것은 아닙니다.

각각 적합한 문제가 다릅니다.

예를 들어:

주문과 결제#

데이터 관계와 일관성이 중요합니다.

관계형 Database가 적합할 수 있습니다.

Cache#

매우 빠른 Key 기반 조회가 필요합니다.

Redis 같은 Key-Value 저장소가 적합할 수 있습니다.

자유로운 JSON Document#

MongoDB 같은 Document Database를 고려할 수 있습니다.

복잡한 관계망#

Neo4j 같은 Graph Database가 적합할 수 있습니다.

핵심은:

어떤 Database가 무조건 더 좋은가가 아니라 어떤 데이터와 문제를 해결해야 하는가가 중요하다.

는 것입니다.


31장 Hadoop에서 Batch 처리는 무엇인가#

제공된 ADsP 학습자료에서는 Hadoop MapReduce와 Hive를 Batch 처리와 연결합니다.

Batch 처리는 데이터가 들어올 때마다 즉시 하나씩 처리하기보다 일정량의 데이터를 모은 뒤 한꺼번에 처리하는 방식을 의미합니다.

예를 들어:

  • 하루치 접속 Log 수집
  • 새벽 2시 전체 집계 실행
  • 전날 방문통계 생성

같은 방식입니다.

개념적으로:

데이터 축적 → 일정 시점 → 한꺼번에 처리

입니다.

대규모 데이터 전체를 분석하는 데 적합할 수 있지만 즉각적인 실시간 응답이 필요한 작업과는 목적이 다릅니다.


32장 Hadoop은 왜 여러 컴퓨터를 사용하는가#

한 대의 Server 성능을 계속 높이는 방법을 Scale-Up이라고 생각할 수 있습니다.

반면 여러 Server를 추가해 전체 처리능력을 확대하는 방법을 Scale-Out이라고 합니다.

Hadoop의 분산 환경은 여러 장비를 활용하는 사고방식과 연결됩니다.

데이터가 커지면:

  • 저장공간 추가
  • 처리 Node 추가

등을 통해 Cluster를 확장할 수 있습니다.

초보자는 Hadoop의 핵심을 다음처럼 기억하면 됩니다.

한 대를 무한히 키우는 대신 여러 대가 함께 일한다.


33장 Hadoop과 NoSQL을 쇼핑몰 사례로 이해하기#

매우 큰 쇼핑몰을 운영한다고 생각해봅시다.

Hadoop#

하루 수십억 건의 Click Log가 발생합니다.

이 대규모 데이터를 여러 Server에 나누어 저장합니다.

→ HDFS

전체 Log를 분석합니다.

→ MapReduce

Cluster 자원을 관리합니다.

→ YARN

SQL 형태로 분석합니다.

→ Hive

NoSQL#

상품정보를 자유로운 Document 형태로 저장합니다.

→ MongoDB

사용자 Session을 빠르게 저장합니다.

→ Redis

대규모 Column 데이터를 관리합니다.

→ HBase·Cassandra

사용자와 상품 사이의 복잡한 관계를 분석합니다.

→ Neo4j

이처럼 Hadoop과 NoSQL은 실제 대규모 서비스에서 서로 다른 문제를 해결합니다.


34장 ADsP에서 자주 헷갈리는 함정#

함정 1. HDFS가 데이터를 분석한다#

틀린 설명입니다.

HDFS → 저장

입니다.

분산 데이터 처리는 MapReduce와 연결합니다.

함정 2. MapReduce는 저장 시스템이다#

틀립니다.

MapReduce → 분산 처리

입니다.

함정 3. YARN은 Hadoop의 Database다#

틀립니다.

YARN → Cluster 자원 관리

입니다.

함정 4. Hive는 관계형 Database 제품이다#

Hive는 Hadoop 데이터를 SQL과 유사한 방식으로 분석하는 Hadoop Ecosystem의 도구로 구분합니다.

함정 5. Sqoop은 Hadoop 내부 데이터를 SQL로 분석한다#

SQL 기반 분석과 가장 먼저 연결할 것은 Hive입니다.

Sqoop의 핵심은:

RDBMS ↔ Hadoop 데이터 이동

입니다.

함정 6. HBase는 관계형 Database다#

틀립니다.

HBase는 Column 계열 NoSQL입니다.

함정 7. MySQL은 NoSQL이다#

틀립니다.

MySQL은 관계형 Database입니다.

함정 8. Redis는 Document Database다#

틀립니다.

Redis는 시험에서 Key-Value로 기억합니다.

함정 9. MongoDB는 Column형이다#

틀립니다.

MongoDB는 Document형입니다.

함정 10. Neo4j는 Key-Value형이다#

틀립니다.

Neo4j는 Graph형입니다.


35장 Hadoop 핵심 비교표#

기술 핵심
HDFS 분산 저장
MapReduce 분산 처리
YARN Cluster 자원 관리
Hive SQL 분석
HBase Column형 NoSQL
Sqoop RDBMS ↔ Hadoop
Pig Pig Latin Script

시험 직전에는 다음 한 줄로 압축할 수 있습니다.

HDFS 저장 · MapReduce 처리 · YARN 관리 · Hive SQL · HBase NoSQL · Sqoop 이동 · Pig Script


36장 NoSQL 핵심 비교표#

유형 제품 핵심
Document MongoDB JSON·BSON
Column HBase·Cassandra 대규모 Column
Key-Value Redis 빠른 조회·Cache
Graph Neo4j 관계망

그리고 관계형 Database는 별도로 기억합니다.

관계형 Database
MySQL
Oracle
PostgreSQL
SQL Server

37장 시험 직전 30초 암기#

Hadoop#

HDFS

→ 저장

MapReduce

→ 처리

YARN

→ 자원 관리

Hadoop Ecosystem#

Hive

→ SQL

HBase

→ Column NoSQL

Sqoop

→ RDBMS ↔ Hadoop

Pig

→ Pig Latin

NoSQL#

MongoDB

→ Document

HBase·Cassandra

→ Column

Redis

→ Key-Value

Neo4j

→ Graph

NoSQL이 아닌 것#

MySQL

Oracle

PostgreSQL

SQL Server

→ 관계형 DB


Hadoop과 NoSQL FAQ#

Hadoop이란 무엇인가#

대용량 데이터를 여러 컴퓨터에 분산하여 저장하고 처리할 수 있도록 만든 Java 기반 오픈소스 Framework입니다.

Hadoop의 핵심 구성요소는 무엇인가#

ADsP에서는 HDFS, MapReduce, YARN을 핵심으로 구분합니다.

HDFS란 무엇인가#

Hadoop Distributed File System의 약자로 대용량 파일을 여러 Node에 분산하여 저장하는 파일 시스템입니다.

MapReduce란 무엇인가#

대규모 데이터 처리작업을 여러 Node에 나누어 실행하고 결과를 다시 취합하는 분산처리 방식입니다.

YARN은 무엇을 하는가#

Hadoop Cluster에서 CPU와 Memory 같은 자원을 관리하고 작업 실행을 조정합니다.

HDFS와 MapReduce 차이는 무엇인가#

HDFS는 저장, MapReduce는 처리가 핵심입니다.

Hive란 무엇인가#

Hadoop의 데이터를 SQL과 유사한 질의 방식으로 분석할 수 있도록 하는 도구입니다.

HBase란 무엇인가#

Hadoop HDFS를 기반으로 사용할 수 있는 Column 계열 NoSQL Database입니다.

Sqoop이란 무엇인가#

관계형 Database와 Hadoop 사이에서 데이터를 이동·연동하는 도구입니다.

Pig란 무엇인가#

Pig Latin이라는 Script를 이용해 대규모 데이터를 처리하는 Hadoop Ecosystem 도구입니다.

NoSQL이란 무엇인가#

관계형 Table 모델만을 사용하는 방식과 달리 Document·Column·Key-Value·Graph 등 다양한 데이터 모델을 사용하는 Database 계열입니다.

MongoDB는 어떤 NoSQL인가#

Document형 NoSQL Database입니다.

JSON과 유사한 Document 구조와 BSON 저장 형식을 사용합니다.

Redis는 어떤 NoSQL인가#

Key-Value 계열입니다. 빠른 데이터 접근과 Cache 등의 용도와 연결해서 기억할 수 있습니다.

Cassandra는 어떤 NoSQL인가#

ADsP에서는 HBase와 함께 Column 계열 NoSQL로 정리합니다.

Neo4j는 어떤 NoSQL인가#

Graph Database입니다. 데이터 사이의 관계망을 표현하고 탐색하는 데 적합합니다.

HBase는 Hadoop인가 NoSQL인가#

두 관점 모두 관련됩니다. Hadoop Ecosystem의 기술이면서 Column 계열 NoSQL Database입니다.

MySQL은 NoSQL인가#

아닙니다. MySQL은 관계형 Database Management System입니다.

Oracle과 PostgreSQL도 NoSQL인가#

아닙니다. ADsP 기본 분류에서는 Oracle과 PostgreSQL 모두 관계형 Database입니다.

Hadoop과 NoSQL은 같은 것인가#

아닙니다. Hadoop은 대용량 데이터의 분산 저장·처리를 위한 Framework이고 NoSQL은 관계형 Table 이외의 다양한 데이터 모델을 사용하는 Database 계열입니다.


자기 점검#

다음 질문에 바로 답할 수 있는지 확인해봅니다.

  1. Hadoop의 핵심 목적을 설명할 수 있는가?
  2. HDFS·MapReduce·YARN을 각각 저장·처리·관리와 연결할 수 있는가?
  3. Map과 Reduce가 각각 어떤 역할을 하는지 설명할 수 있는가?
  4. Hive를 SQL과 연결할 수 있는가?
  5. HBase가 Hadoop Ecosystem이면서 NoSQL이라는 것을 알고 있는가?
  6. Sqoop의 역할을 설명할 수 있는가?
  7. Pig와 Pig Latin을 연결할 수 있는가?
  8. NoSQL과 관계형 Database의 기본적인 차이를 설명할 수 있는가?
  9. MongoDB가 어떤 유형의 NoSQL인지 알고 있는가?
  10. HBase와 Cassandra가 어떤 유형인지 알고 있는가?
  11. Redis가 어떤 유형인지 알고 있는가?
  12. Neo4j가 어떤 유형인지 알고 있는가?
  13. MySQL·Oracle·PostgreSQL이 NoSQL이 아니라는 것을 알고 있는가?
  14. Hadoop과 NoSQL의 역할 차이를 설명할 수 있는가?

이 글을 마치며#

Hadoop과 NoSQL은 빅데이터 영역에서 함께 등장하기 때문에 처음 공부하면 하나의 기술처럼 느껴질 수 있습니다.

하지만 출발점부터 다릅니다.

Hadoop의 질문은 다음과 같습니다.

너무 많은 데이터를 어떻게 여러 컴퓨터에 나누어 저장하고 처리할 것인가?

그래서:

HDFS → 저장

MapReduce → 처리

YARN → 관리

라는 구조가 만들어집니다.

NoSQL의 질문은 조금 다릅니다.

관계형 Table만으로 표현하기 불편한 다양한 데이터를 어떤 구조로 저장할 것인가?

그래서 목적에 따라:

MongoDB → Document

HBase·Cassandra → Column

Redis → Key-Value

Neo4j → Graph

같은 다양한 Database가 존재합니다.

두 영역을 한 번에 정리하면 다음과 같습니다.

Hadoop

분산 저장·처리

→ HDFS
→ MapReduce
→ YARN

Hadoop Ecosystem

분석과 데이터 연동

→ Hive
→ HBase
→ Sqoop
→ Pig

NoSQL

다양한 데이터 모델

→ Document
→ Column
→ Key-Value
→ Graph

시험에서는 마지막으로 다음 연결을 확실히 기억합니다.

HDFS = 저장

MapReduce = 처리

YARN = 자원 관리

Hive = SQL

Sqoop = DB ↔ Hadoop

MongoDB = Document

Redis = Key-Value

Neo4j = Graph

MySQL·Oracle·PostgreSQL = 관계형 DB

이 구조를 이해하면 ADsP 문제뿐 아니라 이후 Hadoop, 분산시스템, MongoDB, Redis 같은 실제 빅데이터·백엔드 기술을 공부할 때도 각각의 역할을 훨씬 쉽게 구분할 수 있습니다.

이 페이지의 목차