1. 빅데이터 기본 개념
Yonsei University
2nd Semester, 2014
Sanghyun Park
* The slides are from the book “시작하세요 ! 하둡 프로그래밍 :
기초부터 실무까지 하둡의 모든 것” written by 정재화 (위키북스 ,
2012)
2. 목차
빅데이터란?
빅데이터의 3 대 요소
빅데이터의 출현 배경
하둡이란?
왜 하둡인가?
하둡 에코시스템
3. 빅데이터란?
데이터의 규모에 초점을 맞춘 정의
기존 데이터베이스 관리도구의 데이터 수집, 저장, 관
리, 분석 역량을 넘어서는 데이터 ( 맥킨지 2011 년 5
월)
업무 수행 방식에 초점을 맞춘 정의
다양한 종류의 대규모 데이터로부터 저렴한 비용으로 가
치를 추출하고, 데이터의 빠른 수집, 발굴, 분석을 지
원하도록 고안된 차세대 기술 및 아키텍처
(IDC 2011 년 6월)
4. 빅데이터의 3 대 요소 (3V)
BI/DW 리서치 기관인 TDWI 가 빅데이터의 3 대 요소
(3V)를 그림으로 표현
3 대 요소 가운데 두 가지 이상의 요소만 충족된다면 빅
데이터라고 볼 수 있음
5. 크기(Volume) (1)
일반적으로 수십 테라바이트(terabyte) 혹은 수십 페타
바이트(petabyte) 이상이 빅데이터의 범위에 해당
1 테라바이트는 1024 기가바이트(gigabyte)
1 페타바이트는 1024 테라바이트
1 페타바이트는 6 기가바이트 DVD 영화를 17 만 4
천 편 담을 수 있는 용량
6. 크기(Volume) (2)
빅데이터는 기존 파일 시스템에 저장하기 어려울 뿐 아니라 데
이터 분석을 위해 사용하는 기존 DW 같은 솔루션에서 소화
하기 어려울 정도로 급격하게 데이터의 양이 증가하고 있음
이러한 문제를 극복하려면 확장 가능한 방식으로 데이터를 저
장하고 분석하는 분산 컴퓨팅 방식으로 접근해야 함
현재 분산 컴퓨팅 솔루션에는 구글의 GFS, 아파치의 하둡 등
이 있음
대용량 병렬 처리 데이터베이스로는 EMC 의 GreenPlum,
HP의 Vertica, IBM의 Netezza, 테라데이터의 Kickfire 등이
있음
7. 속도(Velocity)
빅데이터의 속도적인 특징은 크게 실시간 처리와 장기적인 접
근으로 나눌 수 있음
오늘날 디지털 데이터는 매우 빠른 속도로 생성되기 때문에 데
이터의 수집 , 저장, 분석 등이 실시간으로 처리돼야 함
모든 데이터가 실시간 처리만을 요구하는 것은 아님
수집된 대량의 데이터를 다양한 분석 기법과 표현 기술로 분석
해야 하는데, 이는 장기적이고 전략적인 차원에서 접근할 필
요가 있음
통계학과 전산학에서 사용하는 데이터 마이닝, 기계 학습,
자연어 처리 , 패턴 인식 등이 분석 기법에 해당함
8. 다양성(Variety)
데이터는 정형화 정도에 따라 정형 (Structured), 반정형
(Semi-Structured), 비정형(Unstructured)으로 구분
정형 데이터는 고정된 필드에 저장되는 데이터를 의미하며,
일정한 형식을 갖추고 있음
반정형 데이터는 고정된 필드로 저장되지는 않지만, XML 이
나 HTML 같이 메타데이터나 스키마 등을 포함
비정형 데이터는 고정된 필드에 저장되지 않는 데이터를 의미
함. 사진, 동영상, 메신저로 주고 받은 대화 내용, 스마트
폰에 기록되는 위치 정보, 통화 내용 등이 이에 해당
빅데이터는 비정형 데이터도 처리할 수 있어야 함
9. 빅데이터의 출현 배경 (1)
스마트폰과 같은 디지털 기기의 보급과 소셜네트워크서
비스(SNS) 의 부상으로 엄청난 양의 데이터가 생산되고
있음
빅데이터는 기업, 정부, 의료, 교육 분야에서 그 가치
가 입증되고 있음
빅데이터를 적극적으로 활용하는 기업은 비즈니스 성과
를 개선할 수 있음
글로벌 패션기업인 자라(ZARA) 는 빅데이터 분석을 통
해 상품 공급 프로세스를 혁신하고 재고 수량을 최적화
함으로써 매출과 영업이익을 크게 증대시켰음
10. 빅데이터의 출현 배경 (2)
빅데이터는 의료 분야에서도 적용이 확대되고 있음
최근 일본 IBM과 도호대학은 의료정보를 분석해 미래 질병을
예측할 수 있는 시스템을 개발했다고 발표함 (의료 기록에 텍
스트 분석 기술을 적용 )
DNA 연구 분야에서도 빅데이터 기술이 활발하게 적용되고
있음 (인간의 DNA 를 구성하는 염기서열 1 쌍당 4 테라바
이트의 이미지 데이터가 생성)
국가 차원에서도 빅데이터에 대응하기 위한 다양한 정책이 발
표되고 있음 (미국 백악관, 일본 총무성과 국가전략회의)
11. 하둡이란? (1)
하둡은 대용량 데이터를 분산 처리할 수 있는 자바 기반
의 오픈소스 프레임워크
하둡은 2005년에 더그 커팅(Doug Cutting) 이 구글이
논문으로 발표한 GFS(Google File System) 와 맵리듀스
(MapReduce) 를 구현한 결과물
처음에는 오픈소스 검색 엔진인 너치(Nutch) 에 적용하
기 위해 시작됐다가 이후 독립적인 프로젝트로 만들어졌
고, 2008 년에는 아파치 최상위 프로젝트로 승격되었음
12. 하둡이란? (2)
하둡은 분산 파일 시스템인 HDFS(Hadoop Distributed
File System) 에 데이터를 저장하고, 분산 처리 시스템
인 맵리듀스를 이용해 데이터를 처리
더그 커팅이 자신의 아들이 노란 코끼리 장난감 인형을
하둡이라고 부르는 것을 듣고 하둡이라는 이름을 지었
음. 그래서 하둡의 로고로 노란 코끼리가 사용되는 것임
이러한 프로젝트 네이밍 룰 때문에 이후 하둡 관련 서브
프로젝트도 모두 동물과 관련된 이름을 사용
13. 왜 하둡인가? (1)
정형 데이터의 경우 기존 RDBMS에 저장할 수 있지만 웹 로
그 같은 비정형 데이터를 RDBMS에 저장하기에는 데이터 크
기가 너무 큼
하둡은 오픈소스 프로젝트이기에 소프트웨어 라이선스 비용
에 대한 부담이 없음
값비싼 유닉스 장비를 사용하지 않고, x86 CPU에 리눅스 서
버면 얼마든지 설치하고 운영할 수 있음. 데이터 저장 용량이
부족할 경우 , 필요한 만큼 리눅스 서버만 추가하면 됨
하둡은 데이터의 복제본을 저장하기 때문에 데이터의 유실이
나 장애가 발생했을 때도 데이터의 복구가 가능함
14. 왜 하둡인가? (2)
기존 RDBMS 는 데이터가 저장된 서버에서 데이터를 처리하
는 방식이지만, 하둡은 여러 대의 서버에 데이터를 저장하고,
데이터가 저장된 각 서버에서 동시에 데이터를 처리하는 방식
임
하둡의 저렴한 구축 비용과 비용 대비 빠른 데이터 처리 , 장
애를 대비한 특성은 많은 기업들의 구미를 당기게 했음
하둡은 초기에 야후에서만 주도적으로 사용됐지만, 현재는
아마존, 이베이, 페이스북, 마이스페이스 등 글로벌 서비스
업체에서 주로 이용함
국내에서는 NHN, DAUM 과 같은 포털 기업과 KT, SKT 같은
통신업체에서 사용함
15. 왜 하둡인가? (3)
EMC, IBM, 테라데이터, 오라클, 델, 마이크로소프
트, HP 등은 하둡과 관련된 제품을 쏟아내며 마케팅을
강화
미국에서는 클라우데라, 호튼웍스와 같은 하둡 컨설팅
업체들이 활발히 활동
국내에서는 그루터, 넥스알, 클라우다인 같은 기업들이
하둡과 연계한 자체 솔루션을 선보이고 있음
16. 하둡 에코시스템 (1)
하둡은 비즈니스에 효율적으로 적용할 수 있게 다양한
서브 프로젝트가 제공됨. 이러한 서브 프로젝트를 바탕
으로 하둡 에코시스템이 구성되었음
17. 하둡 에코시스템 (2)
분산 데이터를 저장하는 HDFS 와 분산 데이터를 처리하는 맵
리듀스가 하둡 코어 프로젝트에 해당하며 나머지는 모두 하둡
의 서브 프로젝트
Zookeeper(분산 코디네이터)는 분산 환경에서 서버 간의 상
호 조정이 필요한 다양한 서비스를 제공하는 시스템
Oozie(워크플로우 관리 ) 는 하둡 작업을 관리하는 워크플로
우 및 코디네이터 시스템
HBase(분산 데이터베이스) 는 HDFS 기반의 컬럼 데이터베
이스이며 구글의 BigTable 논문을 기반으로 개발되었음. 실
시간 랜덤 조회 및 업데이트가 가능함. 얼마 전 NHN 이 모바
일 메신저 라인에 HBase를 적용한 시스템 아키텍처를 발표
했음
18. 하둡 에코시스템 (3)
Pig(하이레벨 스크립트 언어 for 데이터 분석) 는 복잡한 맵
리듀스 프로그래밍을 대체할 Pig Latin 이라는 자체 언어를
제공함. 맵리듀스 API 를 크게 단순화 했으며 SQL 과 유사
한 형태로 설계되었음. 야후에서 개발됨
Hive(데이터 분석) 는 페이스북에서 개발된 하둡 기반의 DW
용 솔루션임. SQL 과 매우 유사한 HiveQL 이라는 쿼리를 제
공함. HiveQL 은 내부적으로 맵리듀스 잡으로 변환되어 실행
됨
Mahout(데이터 마이닝) 은 하둡 기반으로 데이터 마이닝 알
고리즘을 구현한 오픈소스임. Classification, clustering, 추천
및 협업 필터링, 회귀 분석, 차원 리덕션, 진화 알고리즘 등
을 지원함
19. 하둡 에코시스템 (4)
Hcatalog ( 메티데이터 관리) 는 하둡으로 생성한 데이터
를 위한 테이블 및 스토리지 관리 서비스
Avro(직렬화) 는 RPC(Remote Procedure Call) 와 데이
터 직렬화를 지원하는 프레임워크. JSON 을 이용해 데
이터 형식과 프로토콜을 정의하며 작고 빠른 바이너리
포맷으로 데이터를 직렬화 함
20. 하둡 에코시스템 (5)
Chukwa(비정형 데이터 수집) 는 분산 환경에서 생성되는 데
이터를 HDFS 에 안정적으로 저장하는 플랫폼. 분산된 각 서
버에서 에이전트를 실행하고 콜렉터가 에이전트로부터 데이
터를 받아 HDFS 에 저장함
Flume(비정형 데이터 수집 )은 Chukwa 처럼 분산된 서버에
에이전트가 설치되고, 에이전트로부터 데이터를 전달받는 콜
렉터로 구성 . 차이점은 전체 데이터의 흐름을 관리하는 마스
터 서버가 있어서 데이터를 어디서 수집하고 어떤 방식으로 전
달할지를 동적으로 변경할 수 있음 . 클라우데라에서 개발
Scribe(비정형 데이터 수집 ) 는 페이스북에서 개발한 데이터
수집 플랫폼이며, Chuckwa 와는 다르게 중앙 집중 서버로 전
송하는 방식을 사용함
21. 하둡 에코시스템 (5)
Scoop(대용량 데이터 전송 솔루션) 은 HDFS, RDBMS,
DW, NoSQL 등 다양한 저장소에 대용량 데이터를 신속
하게 전송할 수 있는 방법을 제공함
Hiho( 대용량 데이터 전송 솔루션) 는 Sqoop 과 같은 대
용량 데이터 전송 솔루션이며 GitHub 에 공개돼 있음.
오라클과 MySQL 의 데이터 전송만 지원함
22. 하둡 에코시스템 (6)
Impala 는 클라우데라에서 개발한 하둡 기반의 실시간
SQL 질의 시스템이며, 맵리듀스를 사용하지 않고 자체
개발한 엔진을 사용해 빠른 성능을 보여줌. 데이터 조회
를 위한 인터페이스로 HiveQL 을 사용하며 Hbase 와도
연동할 수 있음
Tajo 는 고려대학교 박사 과정 학생들이 주도해서 개발한
하둡 기반의 SW 시스템이며, 2013 년 아파치 재단의
인큐베이션 프로젝트로 선정됐음. 데이터 저장소는
HDFS 를 사용하되, SQL 언어를 사용하여 실시간으로
데이터를 조회할 수 있음
23. NoSQL 이란?
NoSQL이란 관계형 데이터 모델과 SQL문을 사용하지 않는
데이터베이스 시스템 혹은 데이터 저장소를 의미함
기존 RDBMS 가 분산 환경에 적합하지 않기 때문에 이를 극
복하기 위해 NoSQL 이 고안되었음
NoSQL 의 데이터베이스는 단순히 키와 값의 쌍으로만 이뤄져
있고, 인덱스와 데이터가 분리되어 별도로 운영됨. 또한 조
인이 없으며, 샤딩(Sharding)이라는 기능을 이용해 데이터
를 분할해서 다른 서버에 나눠 저장함
MongoDB, HBase, CouchDB, Casandra, Redis 등 다양한
NoSQL 솔루션이 출시되고 있으며 , 국내에서는 MongoDB
가 가장 많이 사용됨