공든탑앱 열기

빅데이터 플랫폼과 하둡 에코시스템

빅데이터분석기사 · 빅데이터 기술 및 제도 · 약 12분

쉽게 말하면

데이터가 너무 커서 컴퓨터 한 대에 안 들어가면 여러 대에 나눠 담고, 여러 대가 동시에 나눠 계산해요. 이걸 해 주는 대표 도구 묶음이 하둡이에요. 하둡에 붙어 데이터를 가져오고(수집), 담고(저장), 계산하고(처리), 분석하는 도구들을 통틀어 하둡 에코시스템이라고 불러요.

시험용 정의

빅데이터 플랫폼은 대용량 데이터를 수집·저장·처리·분석하는 기술을 한데 묶은 환경이다. 보통 인프라스트럭처 계층(노드·저장장치·네트워크 자원 관리), 플랫폼 계층(작업 스케줄링, 데이터·자원 할당), 소프트웨어 계층(수집·처리·분석 응용)으로 나눈다. 대표가 하둡(Hadoop)이다. 하둡은 여러 대의 범용 서버에 데이터를 블록으로 나눠 저장하는 HDFS와, 계산을 여러 노드에 나눠 돌리는 맵리듀스(MapReduce)가 중심이며, 하둡 2부터 YARN이 클러스터 자원을 관리한다. 하둡 주변의 수집·저장·처리·관리 도구를 하둡 에코시스템이라 한다.

비유로 이해하기

이삿짐 1만 상자를 트럭 한 대로 나르면 며칠 걸린다. 트럭 100대에 나눠 싣고(HDFS), 각 트럭이 동시에 날라 도착지에서 합치면(맵리듀스) 금방 끝난다. 배차를 정하는 배차 담당이 YARN, 어느 상자가 어느 트럭에 있는지 적은 장부가 네임노드다.

자세히

HDFS

구성역할
네임노드 (NameNode)파일 이름, 블록 목록, 블록이 있는 데이터노드 위치(메타데이터) 관리. 마스터
데이터노드 (DataNode)실제 블록을 저장하고 주기적으로 네임노드에 상태(하트비트)를 보냄
블록파일을 큰 덩어리로 나눈 단위. 하둡 2 이후 기본 128MB
복제블록을 기본 3벌 다른 노드에 저장해 노드가 고장 나도 데이터를 잃지 않음

HDFS 는 한 번 쓰고 여러 번 읽는(write once, read many) 대용량 순차 처리에 맞다. 작은 파일이 아주 많거나 자주 고쳐 쓰는 일에는 맞지 않는다.

맵리듀스

처리 순서: 맵(각 노드가 자기 블록을 읽어 키-값 쌍으로 바꿈) → 셔플·정렬(같은 키끼리 모아 정렬) → 리듀스(키마다 합치거나 요약). 단어 세기라면 맵이 (단어, 1)을 만들고, 리듀스가 단어마다 1을 더한다. 중간 결과를 디스크에 쓰기 때문에 반복 계산(머신러닝)은 느리다.

하둡 에코시스템

분야도구한 줄 설명
수집Sqoop관계형 데이터베이스와 HDFS 사이 대량 전송
수집Flume, Chukwa, Scribe여러 서버의 로그를 모아 저장소로 보냄
수집Kafka대용량 실시간 메시지(스트림)를 주고받는 분산 메시징
저장HBaseHDFS 위의 컬럼 기반 NoSQL 데이터베이스
처리HiveSQL 과 비슷한 HiveQL 로 맵리듀스 작업을 만듦
처리PigPig Latin 스크립트로 데이터 흐름을 짬
처리Spark메모리 기반 분산 처리. Spark SQL, 스트리밍, MLlib(머신러닝), GraphX
관리ZooKeeper분산 노드 사이 설정·동기화를 조율
관리Oozie하둡 작업을 순서대로 묶어 실행하는 워크플로 스케줄러
분석Mahout하둡 위에서 돌아가는 머신러닝 라이브러리

맵리듀스와 스파크

맵리듀스스파크
중간 결과디스크에 저장메모리에 유지(RDD)
강점아주 큰 배치 작업을 안정적으로반복 계산, 대화형 분석, 스트리밍
속도반복 작업에서 느림반복 작업에서 훨씬 빠름

시험에 이렇게 나와요

출제기준 1과목 '빅데이터 플랫폼'

확인 문제

Q1. 하둡의 분산 파일 시스템에서 파일이 어느 데이터노드의 어느 블록에 있는지(메타데이터)를 관리하는 것은?

  1. 주키퍼
  2. 네임노드
  3. 리듀서
  4. 데이터노드
정답 보기

2번 네임노드

네임노드가 파일 이름·블록 위치 같은 메타데이터를 관리하고, 실제 블록은 데이터노드들이 나눠 저장한다.

Q2. 관계형 데이터베이스의 테이블을 HDFS 로 대량으로 옮길 때 쓰는 도구는?

  1. Flume
  2. Sqoop
  3. ZooKeeper
  4. Oozie
정답 보기

2번 Sqoop

Sqoop 은 관계형 DB 와 하둡 사이 데이터를 주고받는다.

Q3. 맵리듀스의 처리 순서로 알맞은 것은?

  1. 맵 → 셔플·정렬 → 리듀스
  2. 리듀스 → 셔플 → 맵
  3. 맵 → 리듀스 → 셔플
  4. 셔플 → 맵 → 리듀스
정답 보기

1번 맵 → 셔플·정렬 → 리듀스

맵이 키-값을 만들고, 같은 키끼리 모아 정렬한 뒤, 리듀스가 합친다.

Q4. SQL 과 비슷한 질의 언어로 하둡 데이터를 다루게 해 주는 도구는?

  1. Mahout
  2. Hive
  3. Pig
  4. Kafka
정답 보기

2번 Hive

Hive 는 HiveQL 을 맵리듀스(또는 다른 엔진) 작업으로 바꿔 실행한다.

Q5. 스파크가 맵리듀스보다 반복 계산에서 빠른 가장 큰 이유는?

  1. 중간 결과를 메모리에 두어서
  2. 복제를 하지 않아서
  3. 네임노드가 없어서
  4. 블록을 더 작게 나눠서
정답 보기

1번 중간 결과를 메모리에 두어서

맵리듀스는 단계마다 디스크에 쓰지만 스파크는 메모리에 유지한다.

Q6. 하둡 HDFS 에 대한 설명으로 옳지 않은 것은?

  1. 범용 서버 여러 대로 구성할 수 있다
  2. 네임노드가 메타데이터를 관리한다
  3. 블록을 여러 노드에 복제해 저장한다
  4. 작은 파일을 자주 고쳐 쓰는 작업에 가장 알맞다
정답 보기

4번 작은 파일을 자주 고쳐 쓰는 작업에 가장 알맞다

HDFS 는 큰 파일을 한 번 쓰고 여러 번 읽는 데 맞다.

헷갈리기 쉬운 O·X

HDFS 의 실제 데이터 블록은 네임노드에 저장된다.

정답 보기

X 블록은 데이터노드에, 네임노드에는 메타데이터만 있다.

Kafka 는 대용량 실시간 데이터를 주고받는 분산 메시징 시스템이다.

정답 보기

O

HBase 는 행 기반 관계형 데이터베이스다.

정답 보기

X HBase 는 HDFS 위의 컬럼 기반 NoSQL 이다.

함께 보면 좋은 개념