52
필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(MIS) 을 졸업한 후 쌍용정보통신, 삼보컴퓨터, 한 국 썬마이크로시스템즈(상무, SunSoft 지사 장), 하이트론 (부사장) 등을 거쳐 현재 ㈜ 임팩트라인 대표와 SGI Korea의 기술고문 을 맡고 있다. 2006년에 ‘가상화 스토리지네트워크’(홍릉 과학출판사)를 쓴 바 있다. Hadoop과 분석기법(Analytics) 데이터 지은이 · 윤형기 지은이 · 윤형기 오늘날의 빅데이터 물결은 2004년 Google의 논문이 발단이 된 Hadoop 프로젝트로부터 시작되었다. 그러나 이러한 빅데이터 기술이 갑자기 생겨난 것은 아니다. 한편으로는 분산컴퓨팅과 NoSQL 데이터베이스 등이 모태가 되었고, 다른 한편에서는 데이터 마이닝 기술과 R 등의 분석도 구가 뿌리가 되었다. 이처럼 새로운 컴퓨팅 패러다임으로서의 빅데이터를 제대로 이해하려면 Hadoop과 분석기술의 2가지 요소를 동시에 살펴 보아야 한다. 업무에 적합한 분석 알고리즘을 선택하고 이를 MapReduce 모델로 구현할 때 빅데이터 분석이 완성되는 것이다. 이 책은 이런 관점에서 빅데이터 기술을 총체적으로 설명하고 자 노력하였다. 이론적 배경과 함께 관련 예제와 사례를 덧붙여 서 분석가와 프로그래머는 물론 관심있는 이들이 빅데이터를 제 대로 이해하고 활용할 수 있도록 하였다. Hadoop과 분석기법(Analytics) 데이터 오픈위드넷 (www.openwith.net) 은 개방형 표준기술을 추구합니다. 관련 분야의 컨설팅과 교육, 그리고 분야별 전문가 모임을 통해 지속적인 상호 발 전을 꾀하고 있습니다. 또한 이러한 노력의 일환으로 관련 분 야의 책을 지속적으로 출간하고 있습 니다. OpenWithNet 총서 ▶ 가상화기술과 스토리지 네트워크 (2006년) ▶ 빅 데이터: Hadoop과 데이터분석 기법 (2013년) ▶ 세만틱 웹과 차세대 인터넷 (근간) ▶ NoSQL 데이터베이스 일반이론 과 MongoDB (근간) Designed by Ester 빅데이터-표지_3차수정.indd 1 2013-10-04 오후 3:19:28

Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

Embed Size (px)

Citation preview

Page 1: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

필자 소개

윤형기 임팩트라인 대표

윤형기 대표는 한국외대와 동 대학원(MIS)

을 졸업한 후 쌍용정보통신, 삼보컴퓨터, 한

국 썬마이크로시스템즈(상무, SunSoft 지사

장), 하이트론 (부사장) 등을 거쳐 현재 ㈜

임팩트라인 대표와 SGI Korea의 기술고문

을 맡고 있다.

2006년에 ‘가상화 스토리지네트워크’(홍릉

과학출판사)를 쓴 바 있다.

Hadoop과 분석기법(Analytics)빅데이터

지은이·

윤형

지은이·윤형기

오늘날의 빅데이터 물결은 2004년 Google의 논문이 발단이

된 Hadoop 프로젝트로부터 시작되었다.

그러나 이러한 빅데이터 기술이 갑자기 생겨난 것은 아니다.

한편으로는 분산컴퓨팅과 NoSQL 데이터베이스 등이 모태가

되었고, 다른 한편에서는 데이터 마이닝 기술과 R 등의 분석도

구가 뿌리가 되었다.

이처럼 새로운 컴퓨팅 패러다임으로서의 빅데이터를 제대로

이해하려면 Hadoop과 분석기술의 2가지 요소를 동시에 살펴

보아야 한다.

업무에 적합한 분석 알고리즘을 선택하고 이를 MapReduce

모델로 구현할 때 빅데이터 분석이 완성되는 것이다.

이 책은 이런 관점에서 빅데이터 기술을 총체적으로 설명하고

자 노력하였다. 이론적 배경과 함께 관련 예제와 사례를 덧붙여

서 분석가와 프로그래머는 물론 관심있는 이들이 빅데이터를 제

대로 이해하고 활용할 수 있도록 하였다.

Hadoop과

분석

기법(Analytics)

빅데

이터

오픈위드넷 (www.openwith.net) 은

개방형 표준기술을 추구합니다. 관련

분야의 컨설팅과 교육, 그리고 분야별

전문가 모임을 통해 지속적인 상호 발

전을 꾀하고 있습니다.

또한 이러한 노력의 일환으로 관련 분

야의 책을 지속적으로 출간하고 있습

니다.

OpenWithNet 총서

▶ 가상화기술과 스토리지 네트워크

(2006년)

▶ 빅 데이터: Hadoop과 데이터분석

기법 (2013년)

▶ 세만틱 웹과 차세대 인터넷 (근간)

▶ NoSQL 데이터베이스 – 일반이론

과 MongoDB – (근간)

Des

igne

d by

Est

er

빅데이터-표지_3차수정.indd 1 2013-10-04 오후 3:19:28

Page 2: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

Hadoop과 분석기법(Analytics)빅데이터

지은이·윤형기

빅데이터-속표지.indd 2 2013-10-04 오후 2:37:06

Page 3: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

2

터: Hadoop 터 분

출간 2013년 10월 3

은 윤 기

출판 퍼플

주 울 종 종 1 1번

www.kyobobook.co.kr

ⓒ 윤 기 2013

본 용의 전부 는 부를 재 용 면

반 권 의 동의를 으셔 다.

OpenWithNet 총

상 기술 스 워크 (2006년)

터: Hadoop 터분 기 (2013년)

세만 웹 세대 인터넷 (근간)

NoSQL 터 스 – 반 론 MongoDB – (근간)

Page 4: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

3

목 차

차 .......................................................................................................... 3

I. 배경 ..................................................................................................... 11

1 데이터의 물결 .............................................................................. 11

(1) 데이터 대의 도래 .......................................................... 11

(2) 데이터의 징 ................................................................... 12

2. 슈퍼컴퓨팅 기술과 분산컴퓨팅 기술 ............................................ 15

(1) 슈퍼컴퓨팅 (HPC )기술 ......................................................... 15

(2) 분산컴퓨팅과 분산파일 스템 ............................................. 17

3. BI와 데이터베이스 ........................................................................... 22

(1) BI (Business Intelligence).................................................... 22

(2) 대규 데이터베이스와 NoSQL DB .................................... 26

4. Google과 Apache 프 .......................................................... 34

(1) Google 데이터 ................................................................... 34

(2) Apache 데이터 프 .................................................. 37

II. Hadoop ............................................................................................ 39

Page 5: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

4

1. Hadoop 요 ................................................................................... 39

(1) Hadoop의 배경 ..................................................................... 39

(2) Hadoop의 version ................................................................ 41

(3) 징 ......................................................................................... 44

2. Hadoop의 아키텍 ........................................................................ 49

(1) 개요 ......................................................................................... 49

(2) Hadoop의 리 흐름도 ........................................................ 55

3. Hadoop의 기능요소 – HDFS와 MapReduce .............................. 57

(1) HDFS (Hadoop Distributed File System) ......................... 57

(2) MapReduce ............................................................................ 68

4. Hadoop 설 운 과 프 그래밍 ................................................... 93

(1) Hadoop의 설 와 운용 ........................................................ 93

(2) Hadoop 프 그래밍 .............................................................. 97

(3) 결론 ......................................................................................... 99

5. Hadoop과 관련된 프 (Hadoop 생태계) ......................... 102

(1) Pig ......................................................................................... 103

(2) Hive ....................................................................................... 105

Page 6: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

5

(3) Hbase .................................................................................... 109

(4) ZooKeeper ........................................................................... 112

(5) Sqoop ................................................................................... 115

(6) Flume .................................................................................... 117

(7) 기능별 주요 Hadoop 관련 프 ................................ 118

III. 분 이론 ........................................................................................ 120

1. 개요 ................................................................................................. 120

(1) Analytics의 개념 .................................................................. 120

(2) 예측분 , BI, 데이터마이닝의 교 ................................... 122

(3) 데이터 분 을 위한 통계이론 기초 ................................... 126

(4) 예측분 (Predictive Analytics) ........................................ 129

(5) 종의 Analytics 활용 ........................................................ 131

2. 델링과 데이터의 전 리 ........................................................... 134

(1) 데이터의 전 리 문 ......................................................... 134

(2) 델링 ( 델개발) ................................................................ 142

(3) 기계 습 ............................................................................... 144

3. 주요 분 기 ............................................................................... 145

Page 7: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

6

(1) OLAP 분 (DW/OLAP) ...................................................... 145

(2) 개념 술과 데이터 이산화 및 개념계층 생성 .................. 150

(3) 데이터 상호관련성의 분 ................................................ 154

(4) 분류 (Classification) ........................................................... 172

(5) 군집 이론 .............................................................................. 211

(6) 예측이론 ............................................................................... 241

(7) 의사결정 리(Decision Tree) ........................................... 246

(8) 스 림 데이터 (data stream)의 분 ............................... 249

(9) 계열 및 순차데이터에 대한 분 ................................... 253

(10) 이상 분 (Outlier Analysis) ....................................... 257

4. Analytics 도 ............................................................................... 262

(1) 상용 분 도 ...................................................................... 262

(2) 오픈소스 ............................................................................... 262

IV. 데이터 분 의 실 예 .......................................................... 268

1. Mahout를 이용한 군집 분 ....................................................... 268

(1) 개요 ....................................................................................... 268

(2) Mahout에 의 군집화 기능 ............................................... 271

Page 8: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

7

2. 병렬형 빈발패턴 알고리즘 ........................................................... 281

(1) FP-Growth 알고리즘 ........................................................... 281

(2) 병렬형 FP-Growth 알고리즘 .............................................. 283

3. R을 MapReduce에 적용한 계열 데이터분 ......................... 289

4. Social CRM과 Social 네 워크 분 .......................................... 292

(1) 배경 – 전통적 (분 ) CRM ................................................. 292

(2) Social CRM .......................................................................... 295

(3) 소셜 네 워크 분 ............................................................. 298

5. 얼굴인 (보안)과 Hadoop ........................................................... 302

(1) 사례: 미 보스톤 마라톤 폭발 사건 ................................ 302

(2) 얼굴인 (face recognition) .............................................. 302

(3) HIPI ........................................................................................ 305

(4) 덧붙이는 말 – Minority Report? ...................................... 308

5. 부정 탐지와 MapReduce ............................................................. 313

6. 스 리밍을 이용한 R과 Hadoop의 혼용 .................................... 320

(1) R을 이용한 map 기능만의 현 ........................................ 320

(2) R 을 Map과 Reduce 두에 적용 는 경우 .................... 324

Page 9: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

8

V. 데이터 적용 방 론 .................................................................. 328

1. 데이터 성 델 ....................................................................... 328

(1) IDB의 데이터 분 성 델 .......................................... 328

(2) Sprenger의 데이터 성 델............................................. 331

(3). 실 간 예측분 프레임워크............................................. 334

2. 프 방 론 ............................................................................ 336

(1) 데이터 주요 프 세스 ..................................................... 336

(2) 데이터 프 방 론 ................................................. 336

3. 데이터 맵 ............................................................................ 338

(2) 보완관계 의 Hadoop과 DW ........................................ 338

(3) Hadoop을ETL/전 리 기능으 이용 ............................... 338

(4) Hadoop을 ETL 기능으 이용 ........................................... 339

(5) Cloud 스 의 데이터 분 ................................... 339

4. Hadoop과 데이터웨어 우스 ...................................................... 341

(1) 문 의 ............................................................................... 341

(2) 양 의 교 .......................................................................... 341

(3) 공존 전략 – 최소한의 Hadoop DW .................................. 346

Page 10: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

9

(4) Hadoop의 DW 적용 패턴 .................................................. 349

(5) Hadoop DW개발동향 – SQL on Hadoop ....................... 351

(6) 결론 - 보충논의 ................................................................... 352

5. 클라우 컴퓨팅과 데이터 ....................................................... 354

(1) 개요 ....................................................................................... 354

(2) Cloud 스 의 데이터 분 ................................... 354

(3) 데이터 플랫폼으 의 클라우 스 ..................... 355

VI. 데이터 – 결론에 대신 여 ..................................................... 357

부 : r 사용 ..................................................................................... 362

1. 개요 ................................................................................................. 362

(1) 징 ......................................................................................... 362

(2) 설 와 업환경 .................................................................. 363

2. 기본기능 실습 ................................................................................ 365

(1) 첫 걸음 .................................................................................. 365

(2) R에 의 데이터 .................................................................... 370

(3) r에 의 그래프 이용 ............................................................ 374

Page 11: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

10

(4) r의 주요 명령어 ................................................................... 375

3. r 프 그래밍 ................................................................................... 378

(1) Loop과 vectorization ......................................................... 378

(2) R 에 의 프 그램 성 ..................................................... 381

(3) R에 의 성 .............................................................. 383

필 소개............................................................................................. 387

Page 12: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

11

I. 배경

1 데이터의 물결

(1) 터 대의

터 으 증 다. 2011년을 기준으 Twitter

생되는 터의 양 8TB (Terabyte)를 넘 는

2012년 는 Facebook 만 100TB를 넘는 터

생 되 다. 기 인 는 기 1대 관련된

터 대략 640TB에 른다 현재 는 끝을 알 는

다. 끝 커 는 디 털 의 단위를 통 한

현상 을 할 다.

1 bit = binary digit

8 bits = 1 byte

1000 bytes = 1 Kilobyte

1000 Kilobytes = 1 Megabyte

1000 Megabytes = 1 Gigabyte

1000 Gigabytes = 1 Terabyte

1000 Terabytes = 1 Petabyte

1000 Petabytes = 1 Exabyte

1000 Exabytes = 1 Zettabyte

Page 13: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

12

1000 Zettabytes = 1 Yottabyte

1000 Yottabyte = 1 Brontobyte

1000 Brontobyte = 1 Geobyte

의 한 는 만 카카오 의 문 메

2012년 기준 1 8천만 건 순 스 파 만 따져도

최 한 40GB의 터 쌓 을 것으 예상된다.

(2) 터의 징

면 한 터의 증 는 단순히 되는 양만의 문 까?

대 오늘날 터 의 현상을 흔히 다음 V3C 표현 다.

Volume – 터의 양 증

Velocity – “ 빨 !” , 실 간 분 대한 의 증

Variety – 기존의 된 터와 께

(unstructured) 터의 중 증대되 다. 대표 예 전

문(全文)검 , 스 닝 동 상, 상을

는 턴인 등 다.

Complexity – 위 3V와 께 실 간 공의 커 면

전반 으 터 증 게 되 다.

Page 14: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

13

날 갈 한 현상은 되 다. 동안 되거 버

던 터는 살 움 는 재탄생 온 인 공간 의 든

클 , 든 항은 의 터 름(data stream)으 기 ,

존, 분 되는 세상 되 다. 오늘날 길거 의 CCTV, 대중교통 의

및 동상 한 기 되 분 되는 한 현상은 앞으

센 웹 (sensor web)1으 표현되는 센 의 편 및 간의 통신

(Internet of Things) 등 께 될 것 다.

기존의 터 터 (Big Data)

기 (GB)

~ (TB)

페 (Peta Bytes)

~ (Exa Bytes)

중 중 분산

(Structured)

(Semi-Structured 및

Unstructured)

안 인 터 델

(주 관계 터 델)

Flat Schema

는 No Schema

체계 으 된 Interrupt 체계 다단한 상 관계

1 Sensor web 란 종의 센 터를 인터넷 을 통 으

, 교환, 용 는 을 말한다. 히 OGC (Open Geospatial

Consortium: http://www.opengeospatial.org/) 는 SWE (Sensor Web

Enablement) 는 프 워크를 는 기 는 련의 웹 스용

interface와 통신 프 콜을 규 으 써 다른 센 워크 간의

통신을 케 다.

Page 15: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

14

터의 장 큰 징은 운 방 을 통 으

선되 다는 다. 떤 의 오늘날 터를 통 는

것은 30년 전 두 던 것 다. 단 거 는

월 걸쳐 던 것 몇 간 ~ 면 게

된 것인 것 온 변 는 히 운 세상을 예 한다

언 다. 기 의 결 의 신 신상품 프 세스의 단 은

론 으 는 전 분 을 통한 인별 춤 진단은 의료 험

체계의 근본 변 를 올 것 다. 안상으 실 간 를

통한 상인 실현되 종 기술의 변 는

다.

컨대, 터를 통한 간의 단 , 용의 ,

터 분 의 실현 등은 단순히 터 의 선 는 상대 ,

산술 원을 넘 거 생 못 던 것들을 게

기존 전산의 다 을 꾸 침 생활양 까 향주게

된 것 다.

Page 16: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

15

2. 슈퍼컴퓨팅 기술과 분산컴퓨팅 기술

(1) 슈퍼컴퓨팅 (HPC )기술

. HPC와 분산컴퓨팅

흔히 터 면 기 운 기술 탄생한 것 생 기

쉽 만 실 는 동안 으 전, 된 기술의 재탄생으

는 것 을 것 다. 중 슈퍼컴퓨터 , HPC (High

Performance Computing) 다. CDC 의 Seymour Cray

1960년대 한 슈퍼컴퓨터는 전을 거듭 20세기 는 병렬

슈퍼컴퓨터 (MPP: massively parallel supercomputer) 거듭 게

되 다. 기 MPP란 천~ 만 의 프 세 를 장 한 대규

병렬컴퓨터를 말 며 PC 는 거 분 할 두를 못 던

것들 슈퍼컴퓨터 는 많은 분 와 뮬 션 등

용되 다. 슈퍼컴퓨팅은 다음 같은 전 다.

컴퓨터 클 스터의 : 대의 컴퓨터를 밀결 (tightly-

coupled) 의 클 스터를

MPP (Massively Parallel Processing)기술: 컴퓨터를 느

슨 게 결 (loosely-coupled) 을 대

컴퓨팅 (Grid Computing): 대의 원 컴퓨터를

연결한 대규 분산 컴퓨팅

대표 인 HPC 현방 으 다음의 2 를 들 는

들 두 터 기술의 전 인 향을 주 다.

병렬 (Parallel Computing) 기술

분산 컴퓨팅 (Distributed Computing) 기술

Page 17: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

16

한편 슈퍼컴퓨터 싸 만 을 대 활용 기

위 는 프 밍 상의 부 필 다는 을 간 할

다. , 슈퍼컴퓨터 의 프 램 을 위 는 분산 프 세싱을

위한 MPI(Message Passing Interface) PVM(Parallel Virtual

Machine) 등 같은 브 를 용 코딩 거 Beowulf와

같은 오픈 스 솔 션을 용 한다. 클 스터 의 만큼

을 분할 들 상 간 메 를 전 는 방 으 병렬 를

진 켜 기 때문 다.

뒤 듯 터는 기존의 HPC의 다른 습 며 용

한되 던 슈퍼컴퓨터 대중 되 는 으 볼 다.

체 으 다음의 슈퍼컴퓨터 기술 터 용되 다.

. 슈퍼컴퓨터 기술의 응용 터

슈퍼컴퓨터 터 기술 기 한 대표 인 것은 다음 같다.

터의 (Data Aggregation) – 터의 규

커 면 한대의 컴퓨터 장 거 관 기 힘들 므

대 용한다. 터의 대표 인 Hadoop 는

HDFS 는 인 분산파 스템을 기본으 되 Lustre파

Page 18: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

17

스템 같은 기존의 병렬 파 스템 손쉽게 용

할 게 설계되 다.

터 분 (Data Analytics) – 슈퍼컴퓨터 연산 중

의 분 델링 기 용되 는 들 론 분

델 터 분 의 되 다.

터 (Data Visualization) – 한 분 델 대량

의 분 결 는 전문 외 기 힘들 다. 따

표현 히 동 표현(Dynamic visualization)을 통 한

터 체와 대한 연산의 다 원 결 를 인간

기 쉽게 는 한 터 대

용되 다.

(2) 분산컴퓨팅 분산파 스템

. 분산컴퓨팅

분산 컴퓨팅(Distributed Computing) 란 대의 컴퓨터를

연결 상 협 게 으 써 컴퓨팅의 효율을 는 것을

말 는 넓은 의 의 분산컴퓨팅 는 의 컴퓨팅 원을 의

스템 안 밀결 연결한 병렬컴퓨팅까 키기 한다.

분산컴퓨팅의 기본 인 은 대(scalability)와

용 (High Availability) 다 다.

선 컴퓨터의 을 대 키기 위한 방 는

대(Vertical scalability)와 평 대 (Horizontal

scalability)의 2 다.

대는 다음 방 으 컴퓨터의 을 히는 것을 말한다.

Page 19: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

18

연산 다 한 CPU

메 , 디스크 는 디스크 컨 롤 (HDC) 등을 증

설 거 의 것으 교체

통신연결을 은 대 의 통신 선으

I/O 면 Non-blocking I/O와 동기 I/O를

병렬 프 밍 델의 재설계 (예: 메 전 방 의 선

(MPI: Message Passing Interface), blocking/buffering 등)

Event 선을 위한 반

대는 Scale-up으 표현되며 단 HPC

프 램 되기만 면 후부터는 스템 변

용할 는 장 다. 반면 컴퓨터의 양 질

용 기 으 게 된다는 단 다.

평 대

반면 평 대는 다음 방 으 컴퓨팅 을 인다.

컴퓨터 (Node)의

기 상 Peer-to-Peer 델 Master-Slave 델 등의 용.

평 대를 Scale-out으 표현 는 다 기존 투 를

진 인 선을 할 다는 장 다. 예컨대

2 의 필 면 기 동 컴퓨터를 몇 대 장 는

방 으 결 는 것 다.

용 의

분산컴퓨팅을 통한 용 의 는 다음 같은 방 을 동원한다.

장 을 위한 2중 와 Failover 기 및 밸런싱

주 터의 본을 통한 예방

Page 20: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

19

. 분산 파 스템

파 스템 란 터를 체 효율 으 장, 관 기 위

만들 진 틸 프 웨 통 파 단위 관 한다. (반면

위의 체 는 통 블 (block)단위 장 및 전송한다. )

한 파 스템은 컴퓨터 기부터 운 체 의 환으 전

으며 오늘날 운 체 의 연장선 상 으 전 다.

분산 파 스템은 분산환 대의 컴퓨터 파 스템을

께 용할 는 다. , 다 용

원 의 파 을 용할 때 편을 느끼 않 기 위한 종 투명

(transparency)의 념 되 기 ( 터의

및 동기 등) 및 캐싱 (caching) 기술을 통 안 선을

다.

한편 파 스템 분산컴퓨팅 와 찬 평 및

장 방 존재 는 최근 는 것 상 스

념으 까 전 다. 분산파 스템의 대표 인 것은 다음 같다.

NFS (Network File System) – 1980년대 된 최 의

분산 파 스템 프 콜 워크 브를 컴퓨터

의 디 mount 용 는 방 다.

Lustre – 병렬 분산파 스템으 대규 클 스터 컴퓨팅

주 용되 으며 GPL v2 센스 따른 오픈 스

다. Luster(‘ 스터’ 는다)는 Linux와 cluster를 킨

명칭 며 오늘날 대부분의 슈퍼컴퓨터 용 중 다.

크 프 의 DFS (Distributed File System) – 크

프 SMB를 기반으 재 한 분산파 스템 다.

GFS (Google File System) – GFS는 Google 한

인 분산파 스템 다. (오픈 스 님). 는

GFS 대 살펴본다. 터 기술의 기반 되기 때문 다.

Page 21: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

20

GFS

Google은 당 부터 검 털 을 으므 대규

터 필연 다. 한 벤 한 Google은 PC를

연결 는 scale-out 방 을 기 때문 컴퓨터의 웨 장

다. 히 만대의 컴퓨터 된 대규 클 스터 는

별 컴퓨터의 장 는 예 된 것 따 당 부터 다음

같은 항 설 되 다.2

컴퓨터 체의 장 대 를 원 는 파 스템의 선

대용량 파 의 원할 것. 히 웹페 등의 스 및

터와 같은 대량의 터 대한 효율

관 용 할 것.

Write-once, read-many 및 파 (Append) 기

대규 의 streaming 기 ( 히 streaming read )3

들 항을 결 기 위 다음의 설계상의 원 되 다.

길 의 파 단위 (64MB)

파 본(replicate)의 활용

2 실 Google 터센터의 버는 대부분 CPU당 4 core 만

GPU는 장 되 않으며 버 당 메 크기 크 않다 한다.

한 NAS를 거의 용 않 버들은 반 Ethernet 스위 연결되

다 한다.

3 Stream 대 는 뒷부분 (III. 분 기 ▶ 3.주 분 기 ▶ (9)

스 터 세히 살펴 봄.

Page 22: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

21

Master-Slave 방 을 통 한대의 스터 컴퓨터 전체의 메

터를 관 한다.

터 caching기 은 용 않는다.

파 스템 관련한 class의 상 체계를 으 써

snapshot, append 등의 custom API 을 손쉽게 다.

뒤 듯 한 GFS의 기술은 상당부분 Hadoop 파 스템

용되 터 기술의 근간 되 다.

Page 23: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

22

3. BI와 데이터베이스

(1) BI (Business Intelligence)

.

BI 터 전 중 한 할을 다. 원 BI 는 념

출현 기 전 DSS (Decision Support System) 는 름으

의 결 컴퓨터의 원을 는 연 다. 주

중간관 및 최 의 전략의 결 을 던 것으

것 후 BI 전 다4. BI를 다음 같 분류할 다.

솔 션 설명

전략 원의

BI

BSC Balanced Scorecard. 균 관 . 의

전 전략 표 실현을 위 4 (재 , ,

부프 세스, 습 장) 관 의 표를

출 단기 의 재 표 와 장기

표 들 간의 를 는 것.

VBM Value-based Management. .

의 결 의 기준을 계상 출, 중

벗 기 중 으 본 률(ROIC)을

평 의 기준으 는 관 기 을 말한다.

4 1989년 Gartner의 H. Dresner 관련 념을 괄 는 용

"business intelligence" 는 용 를 안 .

Page 24: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

23

솔 션 설명

ABC Activity Based Costing. 활동기준 원 계산.

간 를 기준 전환 으 써

투 원 품 는 스 변환되는 을

히는 원 계산 방 .

분 원의

BI

OLAP On-line Analytical Processing. 다양한

대 으 를 분 는 을 말한다

기존 스템의

ERP,

CRM

ERP, CRM, SCM (Supply Chain Management)

등의 솔 션 신의 기 을 장 BI기 을

공 는 것

BI 운 을

위한 인프

ETL Extraction-Translation-Loading. 기 의 종

전산 스템 터를 출 /변환 후

터웨 스 재 는 것.

DW Data Warehouse. 다양한 운 스템 출,

변환한 후 를 통 한 터 장

(repository)를 말한다

전 용

BI

Portal 털. 인터넷 는 웹 는

의 용 필 는 다양한 스를

종 으 은 곳

BI는 다양한 위 념을 는 넓은 념 만 기 히

터와 관련 주 할 것은 터웨 스와 OLAP 다.

. DW/OLAP 터 분 (Analytics)

OLAP (Online Analytical Processing)은 OLTP 대응되는

념으 OLTP 상 ( , 반 되는) 거 의 대한 것 면

OLAP은 외부의 터를 대상으 종 분 을 원 는 을

Page 25: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

24

는 것 다. , 종 기 을 용 를 다양한

분 는 것 다.

OLTP OLAP

대표 기 기간 (Operational)

스템

전 Data Warehouse와

부문별 Data Mart

터 원천 거 터 중 다양한 스템 출, 변환

거 원 의 결

터의

프 세스 상의

세부 항 (snapshot)

면 종 된 다 원

(Multi-dimensional)

터의

최종 용 의한 짧

신 한 및 갱신

상대 으 긴 간 되는

batch

질의

(Query)

표준 되 상대 으

단순한 질의

델링 반되는 상대 으

한 질의

통상 빠른 응 선을 위 는 많은 준

및 간 . ( 월 ~

주 의 준 필 )

터 크기 교 터 크기

교 음 ( 거

터는 archive)

통계 등을 위 많은 양의

터를 다 는 대부분

DB 설계 많은 DB 블을

다 원 델링 통한 cube 설계

원 실 간 터 를 위

기 대신 당 터

스의 재 재를 실 기

.

Page 26: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

25

터웨 스5는 분 을 위 든 터를 한 곳 은

것으 때의 터 스는 OLTP의 것 는 을 게

된다. (OLAP 는 다 원 분 을 위한 Cube 설계를 는 반면

OLTP 는 DB 블의 규 를 주된 으 한다.)

뒤 듯 터 당 는 검 스템 관련 되 만

후의 전 및 주된 활용 는 BI와 밀 한 관련을 게 되 다.

히 한 현상은 터를 한 후의 분 단계 두 진다.

터 DW/OLAP의 험 대 반 되 으면 한

징을 는 터와 DW를 교 다.

Data Warehouse 터

터의

(atomic, structured)

터 는 semi-

structure Bulk 터

Cube 설계 = Fact 블 +

Dimension 블

(key, value) 단순

대상 터 을 장

기 항 터의 히 장 기존 DW의 으

히 밀 들 는 현상을

5 DW 대 는 뒤의 V. 터 용방 론 ▶Hadoop DW

세히 살펴본다.

Page 27: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

26

(2) 대규 터 스와 NoSQL DB

. 대규 터 스 (Large Database)

본 의 주 터 면 터 스 존재 는 ?

오늘날 Small database 와 big database 는 것을 따 별 는

않는다. 기존 터 스 다 훨씬 큰 규 를 대상으 한

대 의 터 스 존재 는 것은 실 다.

터 스 증 터 스 대 터 스

메인 메 만 운 한대의 버 운 대 버 운

DBA 용 1~2명의 DBA 람의 DBA

10만 의 record 10만 ~1000만 의

1000만 ~ 의

터 <10 GB 10GB ~ 40GB > 40GB

No Partitions 최 한의 Partitioning 대규 의 분할 6

6 샤딩 (Sharding)은 터 스를 의 DB 버 분할 분산

는 기 다. 체 분할기 은 다음 같 다양 다.

방 설명 징

Vertical

Partitioning

블 별 버를

분할 는 방

현 간단 , 전체 스템

큰 변 필 으 터

거대 면 샤딩 필

Page 28: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

27

대규 터 스 는 다 슈 장 크며 를 위

대규 의 분산 클 스터 환 의 께 별한 의 index

관 기술 동원한다. 할 는 관계 체를 기 터

간의 consistency 델을 훨씬 완 으 써 앞 언 한 평 장

용 을 기 한다. 최근 된 대 터 스 관 을

으 는 것은 다음 같다.

HBase Cassandra Vertica CloudTran HyperTable

장 Key기반

NoSQL

Key기반

NoSQL

SQL 기반 OLTP

빠름

단 다,

Tool부

다,

Tool부

기술

귀 기술

오픈 스 오픈 스 상용(HP) 상용 오픈 스

한 터 스의 운 기류를 총괄 으 는 념은

NoSQL 터 스 다.

(Range)기반

Partitioning

Table 크기 커질

때 버를 분 는

- 터를 분할 는 방

Key 는 Hash

기반의 Partitioning

Hash 의 계산

따 버를

Hash 의 선 중

Page 29: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

28

. NoSQL DBMS

터 는 터 큰 중을 기 때문 된

(atomic) 터를 중 으 한 기존의 관계 터 스는

않은 많다. 대 대안 되 중

NoSQL 터 스 큰 반향을 다. NoSQL 터 스는

대부분 Key와 대응되는 Value – , (Key, Value) 의

pair – 터를 관 한다는 징을 진다.

key-value pair란?

key-value pair (KVP)란 연관 을 진 2 터 진

으 때 key는 한 을 는 별 value는 key

의 별된 터 는 대한 주 을 말한다. 예컨대 key

름(name) 면 value는 름 당되는 용 인 것 다

Key-value pair는 흔히 참 표 (lookup table), 쉬 블 (hash

table) 등을 통 현되는 넓게 면 프 램 상의 든 변 와

변 의 종의 key-value pair 할 을 것 다.

예를 들 다음 같 기술된 상황을 .

key value

country 대한민

city 울

year 2013년

체 표기 방 은 솔 션 따 다르 만 MongoDB 및 Python의

다음 같 표현한다.

{ "country" : "대한민 ", "city" : " 울", "year" : 2013 }

Page 30: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

29

Java의 방 으 대표 인 것은 Map을 용 는

것 다. , Map을 실 킨 HashMap ( 동기 ) HashTable

(동기 )를 용 면 된다. 예컨대 다음 같 면 된다.

Map map = new HashMap();

map.put("country", "대한민 ");

map.put("city", " 울");

map.put("year", 2013);

쉬 블 (hash table)

한편 (Key, Value) pair의 동 원 를 기 위 쉬 블을

는 것 중 다. 한 쉬 블의 동 원 터의

(key, value) pair의 부동 원 대 현되기 때문 다.

선 쉬 블 란 key를 효율 으 장 관 기 위

만들 진 종의 참 표(lookup table) 다.

Hash 블은 싱 의 만들 며 의 key를

위 hash bucket 장한다. 때 bucket 란 key value pair의

다. 용 key 당 는 value를 으 할 때

key를 bucket을 뒤 당 key-value pair를 게 된다.

의 key 의 bucket 당될 으므 hash 블

설계의 은 최대한 key-value pair를 분 는 것 다.

Page 31: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

30

NoSQL DBMS는 대용량의 터 및 의 터 스

히 며 프 밍 용 한 월 다. SQL

외의 방 으 터를 (Query)한다는 의 름 붙 진

NoSQL은 최근 기존의 관계 터 스의 SQL까 는

념으 장되면 “Not Only SQL” 장 게 되 다.

NoSQL 터 스의 4 종류

체 현방 따 다음 같 분류할 다.

key-value store 델: key/value lookup 방 으 터를 관

는 Amazon의 Dynamo 대표 다.

Column Families: Google BigTable 논문 된 것으

의 key를 의 attribute (column) 연결 킴으 써

column은 종의 hybrid row/column을 장 게 된다.

HBase, Cassandra 대표 예 다.

문 (Document) 중 터 스: semi-structured (예

를 들 JSON 7 )의 문 터를 장 는 CouchDB,

MongoDB 한다.

프 터 스: 프 론 의거 며 Neo4j 등 다.

7 JSON (JavaScript Object Notation)은 람 컴퓨터 두 할

설계된 스 기반의 터 교환의 표준 다. JavaScript 언 의

표준 따 되 으 다른 떤 컴퓨터 언 용 다.

체를 스 장 거 워크 상으 전송 변

(serializing) 는 것 용 문 간략 XML을 대체 는

기술 인기를 다.

Page 32: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

31

터의 대표 인 Hadoop 의 터 스는 HBase 며

Google의 BigTable을 상당부분 방 다. 한 Cassandra는

HBase 장 근 한 것으 “BigTable Dynamo의 혼

솔 션” 할 다. (HBase 등의 NoSQL 터 스 대

뒤 설명할 예 )

품별 징을 다음 표 다.

장단 HBase Cassandra Vertica MongoDB Hyper-

Table

장 Key 기반

NoSQL,

Cloudera 원

Key 기반

NoSQL,

Amazon

Closed-

source,

SQL표준,

용 용 ,

,

질의

다 .

Document-

oriented.

full-index

HBase

대용,

오픈 스,

빠름

Page 33: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

32

장단 HBase Cassandra Vertica MongoDB Hyper-

Table

단 다, tool

부 , 단순한

queries

다, tool

부 ,단순한

queries

벤 의존 Arbitrary

한 용

후 주 .

검증

완벽

않음

신규

용 면 은

솔 션 됨

까다 움.

HDFS와

, 완전

분산 스템

기존

SQL기반

appl.을

장 는

대안으

검 는

것을 권장

SQL 교

관계 터 스 는 터 게 ACID8 기준을 면

주 별 Table을 만들 들 상 간의 관계를 relation으 규 한다.

(RDB 의 relational 란 한 블 상 간의 관계를

뜻 는 것 다.)

한 DB 대한 질의 SQL문을 용한다. SQL 란

종의 선언문 (high-level declarative language)으 된

터 대 용 는 질의 9 다음 몇 단계를 거쳐

된다.

8 Atomicity (All or Nothing), Consistency (referential integrity 문 ),

Isolation 및 Durability를 의 며 transaction 의 침 된다.

9 SQL Hadoop은 기 상 완 면 다. SQL을 Hadoop

위 용 는 장 듈 되 기 때문 다.

Page 34: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

33

질의사항수동입력

Query parsing

Query 분

Query 최적화

Query 실행

결과출력

런 RDB 규 (normalization) 규 을 철 히 준 던

반면 XML, JSON 같은 는 인위 변 을 통 다.

반면 터 는 터의 중 관계 DB와는

다른 방 으 터를 다. , 터 는 터의

체 방 을 프 램으 실 한다. 때 터를

<key, value> 표현 터의 의 순 용

프 램 한다. 결 SQL 의 질의 실 계 까

용 ( ) 는 것 다. 터 ( NoSQL)은

설 게 런 때문 훨씬 다양 게 터를 표현할 으며

concurrency 편 기 으 선되 다.

Page 35: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

34

4. Google과 Apache 프

(1) Google 터

BC (기원 전) AD (기원 후) 대 분 는 것

빗대 기술 전단계별 대 분 다. , 컴퓨터 전

(BC: Before Computer) 컴퓨터 후 (AC: After Computer)

거 인터넷 전 (BI: Before Internet) 인터넷 후 (PI: Post

Internet)으 기 는 .10 설 는 설명 중

Google의 등장 할 다. 히 검 인 Google은 든

론을 깊 웹을 대상으 방대한 프 워크를

다.11

터 는 Google 다. 스 기부터

터 대한 연 는 은 단 MapReduce

GFS 않 계 되 방대한 프 워크를 다.

10 통 술 및 방용으 만 용되던 인터넷 본 의 상용 ( 통

1994년)를 기점으 .

11 한편 글 는 히 검 의 PageRank 알 즘 선 대

론을 용 다. 뿐만 광 의 Game 론을 Google

Maps 프 론을 용 는 등 을 활용 다. 컨 은

Google의 든 품 스 할을 한다 다.

Page 36: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

35

듈 (stack)의 대략 인 용은 다음 같다.

GFS: 터 장

MapReduce: 터

MyDQL gateway: 터 (ingest)

BigTable: 대규 터 공

Sawzall: 메인 언 (DSL: domain specific

language)

Evenflow (왼 ): 한 workloads의 연결

Evenflow ( 운 ): 스케쥴링

Dremel (오른 ): Columnar storage + 메 터

Dremel (왼 ): End user의 터 질의(query)

Chubby: 스템 의

한 Google의 터 관련 프 워크를 종의 참 델

다 의 한 인터넷 름의 을 다.

들 결 은 스란히 오픈 스 으며 상당 는 Apache

프 등재되 전세계 의 인 참 를 다.

Page 37: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

36

Sqoop는 종의 SQL to Hadoop 으 JDBC 터

스를 Hadoop으 import 는 기 을 진다. Cloudera .

Pig는 Dataflow 향의 언 인 Pig Latin의 컴파 다.

Hive는 SQL기반의 터웨 스 Facebook .

Oozie는 Hadoop의 job 대한 워크플 /coordination

스 프 웨 Yahoo 다.

Page 38: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

37

상을 한 든 프 웨 의 은 주 만

Apache 프 등재한 오픈 스 프 웨 는 공통 을 진다.

결 으 반인으 는 터 대한 거대한 프 워크를

Apache 오픈 스 용 거 참 할 게 된 것 다.

(2) Apache 터 프

터를 효율 으 는 은 Hadoop 전

현재 다양한 다. 12 후 논의는 주

대표 터 프 인 Hadoop및 와 관련된 주 Apache

프 를 중 으 진 될 예 다. 다만 한 념할 것은

Hadoop의 MapReduce, HDFS, HBase 등 중 위 를 기는

만 전체 관 는 20 의 관련 프 거 줄

연결되 으며 순간 으 운 프

안되거 되 다는 다.13 따 전체 인 전체 균 을

면 Hadoop 프 를 근 는 것 중 다.

12 예컨대 다음의 Hadoop Fatigue 는 논의를 살펴 볼 것.

http://www.bytemining.com/2011/08/hadoop-fatigue-alternatives-

to-hadoop/

한편 다른 대표 터 프 HPCC Systems 를 들 는

ECL 는 체 언 기반의 프 밍 델을 통 터 를

다. ( http://hpccsystems.com 참 )

13 Apache 프 는 후 Incubation 프 되 후 한

절 를 거쳐 본 프 등재된다. 최근 중 된

터 근거한 터웨 스 프 인 tajo incubation

프 선 된 다. (http://tajo.incubator.apache.org/ )

Page 39: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

38

Hadoop을 중 으 살펴 면 는 와 같 HDFS와

MapReduce를 (core)으 기 HBase, Pig, Hive 등

밀 게 연결되 으므 다음 장 들 을 기 한다.

Page 40: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

268

IV. 데이터 분 의 실 예

1. Mahout83를 이용한 군집 분

(1)

. Mahout 프 의

Mahout는 Apache프 의 한 분 진 되 는 기계 습용

Java 브 다. 기계 습 란84 컨대 '대상 터 대

컴퓨터 알 분 할 을 는 것'을 말 는 간

런 기 터 닝 솔 션들 현되 활 히 용되

다. 다 최근 Hadoop의 MapReduce 프 워크 활용을

전 한 기계 습 프 램으 Mahout 되 인기를 끌 다.

Mahout는 Lucene프 되 되 다. 스 검

및 스 프 인 Lucene 스 닝 관련된

프 램 꾸준히 되 2008년 를 Mahout 프

키게 된 것 다. 별 프 한 기

Mahout는 Taste 는 별 의 기계 습용 프 램 흡 짧은

간 의 계기를 다. Mahout와 관련된

종 프 으 표현되 다.

83 Mahout는 흔히 ' ' 음한다.

84 앞 기계 습을 “인공 의 한 으 람 닌 컴퓨터

습할 알 즘을 연 및 분 , 는 기술” 의한 다.

Page 41: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

269

다 중 한 것은 Mahout 터 닝 알 즘 몇 를

현 다는 것 외 들을 현 Hadoop의 MapReduce

프 워크와 결 을 다는 것 다. 계산 많은 닝은

컴퓨터의 큰 메 와 연산기 을 만 Mahout는 최대한

MapReduce기 을 활용 터 분 다 용 졌다.

. Mahout의 설

Mahout 다른 Java 응용프 램 설 와 찬 JVM 위

동 므 대한 환 선 한다. 위

Maven 의 설 필 다. 는 Mahout 현재 활 히

진 중 update와 upgrade 빈번 므 들 관 를

동 기 위한 것 다. , 브 의존관계 및 컴파 관 를

Maven 는 build 및 release관 프 램을 통 실 한다.

다른 건으 는 Mahout는 히 Hadoop의 MapReduce

분산 기 의 활용을 전 므 Mahout의 운 을 위 는

Hadoop을 설 한다. 울 프 램의 및 을 위한

환 85을 선 한다. , 선 한 IDE Mahout 프 를

생 는 방 으 Mahout를 설 한다.

85 Eclipse, NetBeans 등을 인의 취향 따 선 .

Page 42: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

270

다. Mahout 공 는 기

Mahout는 떤 프 못 않게 활 히 진 중 며

운 기 들 되 으므 당 프 현황을 홈페 를

통 인할 필 다. 2013년 7월 현재86 Mahout는 다음 같은

기 을 공한다.

Collaborative Filtering

천 스 – 예: Amazon의 분 따른 천.

군 (clustering)

K-Means,

Fuzzy K-Means

Mean Shift clustering

Dirichlet process clustering

LDA (Latent Dirichlet Allocation)

빈 턴 닝

분류 (Classification)

Naive Bayes 분류기

Random forest 의 결 분류기

기 는 Mahout의 군 대 만 살펴 본다. 외의 기

대 는 Mahout 프 (mahout.apache.org)를 참 .

86 version 0.7

Page 43: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

271

(2) Mahout 의 군 기 87

. 첫 : 단순 표 터의 군 례

군 현 중 한 것은 다 항 간의 질 을

떻게 판단 를 떻게 프 램 표현할 것인 의 문 다.

한편, 앞 는 군 관련 근 을 살펴 본

는 Mahout 용 는 체 알 즘 중 기 는 히

대표 인 알 즘의 인 k-means를 용 기 한다.

k-means

fuzzy k-means

canopy

단순한 예를 통 Mahout 용방 을 살펴 본다. 다음 같 x-y

표계 상의 으 표현되는 9 의 (point) 주 졌다 .

다음 페 의 표 당 9 터 되 오른편

를 x-y 표면 표 다.

들 9 을 Mahout를 용 2 룹으 군 는

것 기 의 용 다. 선 들 터를 프 램

기 위 는 진의 터 맷을 SequenceFile 표현한다.

87 Mahout를 이용한 군집화 사례에 대한 설명은 Sean Owen (외), Mahout

In Action, 2012의 해당부분을 인용 및 정 다.

Page 44: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

272

(x 표, y 표)

(1,1)

(2,1)

(1,2)

(2,2)

(3,3)

(8,8)

(8,9)

(9,8)

(9,9)

흔히 터(vector)란 '크기와 방향을 동 는 량'을

뜻 만 Mahout 는 터의 를 ordered list의

표현한 것을 의 한다. 히 단순한 예 는 를 2 원 표상의

대한 터를 ordered list 표현한 것으 볼 다.

먼 k-means 알 즘 필 한 다음 파 터를 한다.

SequenceFile: 할 터 와, 군 별 중 대한 를

기 한다.

평 대한 . 평 의 다양한 거 념

대 앞 살펴본 다. EuclideanDistanceMeasure의

Euclide 거 를 용할 때 용된다.

convergenceThreshold : 기 된 를 출 으 군

반 으 진 되는 한 반 을 계 할 부

대한 판단기준을 낸다.

터 대한 Vector

들 를 다음의 순 군 을 한다.

Page 45: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

273

입력 데이터

Vectorizatoin

· 입력데이터를

vector형태 변환· Vector를 해당

위치에 기

중심부 초기화

· 목표 군집

(grouping)의 중심위치를 지정

군집화 (clustering) 업을 반복수행

출력디렉토리 업결과를 획득

을 는 Java 프 램 다음 같 되 다.

public class MahoutClusterFirst {

public static final double[][] points

={{1,1},{2,1},{1,2},{2,2},{3,3},{8,8},{9,8},{8,9},{9,9}};

public static void writePointsToFile(List<Vector> points,

String fileName,

FileSystem fs,

Configuration conf) throws IOException {

Path path = new Path(fileName);

SequenceFile.Writer writer

= new SequenceFile.Writer(fs, conf,

path, LongWritable.class, VectorWritable.class);

long recNum = 0;

VectorWritable vec = new VectorWritable();

for (Vector point : points) {

vec.set(point);

writer.append(new LongWritable(recNum++), vec);

}

writer.close();

}

public static List<Vector> getPoints(double[][] raw) {

List<Vector> points = new ArrayList<Vector>();

for (int i = 0; i < raw.length; i++) {

double[] fr = raw[i];

Vector vec = new RandomAccessSparseVector(fr.length);

vec.assign(fr);

Page 46: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

274

points.add(vec);

}

return points;

}

public static void main(String args[]) throws Exception {

int k = 2;

List<Vector> vectors = getPoints(points);

File testData = new File("testdata");

if (!testData.exists()) {

testData.mkdir();

}

testData = new File("testdata/points");

if (!testData.exists()) {

testData.mkdir();

}

Configuration conf = new Configuration();

FileSystem fs = FileSystem.get(conf);

writePointsToFile(vectors,"testdata/points/file1",fs,conf);

Path path = new Path("testdata/clusters/part-00000");

SequenceFile.Writer writer = new SequenceFile.Writer(

fs, conf, path, Text.class, Cluster.class);

for (int i = 0; i < k; i++) {

Vector vec = vectors.get(i);

Cluster cluster = new Cluster(

vec, i, new EuclideanDistanceMeasure());

writer.append(new Text(cluster.getIdentifier()),

cluster);

}

writer.close();

KMeansDriver.run(conf, new Path("testdata/points"),

new Path("testdata/clusters"),

new Path("output"),

new EuclideanDistanceMeasure(),

0.001, 10, true, false);

SequenceFile.Reader reader = new SequenceFile.Reader(fs,

new Path("output/" + Cluster.CLUSTERED_POINTS_DIR

+ "/part-m-00000"), conf);

IntWritable key = new IntWritable();

WeightedVectorWritable value

Page 47: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

275

= new WeightedVectorWritable();

while (reader.next(key, value)) {

System.out.println(

value.toString() + " belongs to cluster "

+ key.toString());

}

reader.close();

}}

위 프 램 는 주 진 터를 2 의 룹으 기 위한

군 의 출 으 (1,1) (2,1)의 2 을 는

따른 산출 다음 표 되 다.

1.0: [1.000, 1.000] belongs to cluster 0

1.0: [2.000, 1.000] belongs to cluster 0

1.0: [1.000, 2.000] belongs to cluster 0

1.0: [2.000, 2.000] belongs to cluster 0

1.0: [3.000, 3.000] belongs to cluster 0

1.0: [8.000, 8.000] belongs to cluster 1

1.0: [9.000, 8.000] belongs to cluster 1

1.0: [8.000, 9.000] belongs to cluster 1

, 맨 음 되 던 9 의 들 표 터 따 cluster-0와

cluster-1의 2 룹으 군 되 음을 알 다.

Page 48: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

276

앞 듯88 거 념 는 상황 따 선 게

되는 Mahout 브 EucliideanDistanceMeasure 외

다음의 다양한 거 공되 다.

SquredEucliideanDistanceMeasure

ManhattanDistanceMeasure

CosineDistanceMeasure

TanimotoDistanceMeasure

WeightedDistanceMeasure

들 의 용은 름으 쉽게 눈 챌 거

대한 설명 앞 부분 으므 주 거 용을 으

표현한 것을 는 것으 대신한다.

위 중 왼 Euclid 거 와 Manhattan거 계산을 교

다. 오른 는 cosine 의한 거 계산방 을 주 다.

88 III.분 기 ▶ 3. 주 분 기 ▶ (5) 군 론 ▶ ( ) 간

Page 49: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

277

한편 살펴본 9 의 대한 표 터 위의 다른

거 를 용한 결 다음 같다.

거 반

0번 군

는 vector

1번 군

는 vector

EucliideanDistanceMeasure 3 0,1,2,3,4 5,6,7,8

SquredEucliideanDistanceMeasure 5 0,1,2,3,4 5,6,7,8

ManhattanDistanceMeasure 3 0,1,2,3,4 5,6,7,8

CosineDistanceMeasure 1 1 0,2,3,4,

5,6,7,8

TanimotoDistanceMeasure 3 0,1,2,3,4 5,6,7,8

위 결 를 면 반 다르 결 한 음을 알

다. 는 거 의 절대 열 때문 기 다 용 분 따

한 을 는 것으 볼 을 것 다.

. 둘째 : 턴의 군 례

실 의 군 는 앞 표 터와 같 터

단순한 주 않으므 분 대상 되는 체의 터를

올 르게 vector 터 변환 는 선 되 한다.

Mahout 는 다음 3 class를 통 vector 터를 표현한다.

DenseVector: vector 터를 double 터 의 열의

표현 는 class 다.

RandomAccessSparseVector: HashMap으 현된

random access 용의 sparse vector 다.

SequentialAccessSparseVector: 순 용 vector 다.

Page 50: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

278

들 중 떤 클 스를 용 분 대상 되는 체 터를

vector 표현할 것인 는 용 알 즘 따 진다.

Mahout 는 vector를 Java의 interface 공 는

히 관련 vector 터 중 빈 항 많은 - , sparse인 -

를 sparse vector 대부분의 vector 터 실 터

워진 를 dense vector 한다. Mahout 는

다양한 vector 연산을 할 class 되 다.

의 예 를 분류 는 예를 살펴본다. 를

분류할 때는 선 크기, 깔, 게 등의 떤 분류기준을 용할 것인

한다. 론 만 다면 떤 것 든 분류기준으 을

들 를 중 용 종 판단 다.

편의상 는 다음 같 표와 같 게 (Kg 단위), 깔 ( ,

빨 , ), 크기 (Small, Large, Medium) 다른 5 의

주 졌다 .

게 (Kg) 깔(RGB) 크기 Vector

분 대상 0 원 1 원 2 원 터 표현

Small,round, green 0.11 510 1 [0.11, 510,1]

Large, oval, red 0.23 650 3 [0.23, 650,3]

Small,elongated, red 0.09 630 1 [0.09,630,1]

Large, round, yellow 0.25 590 3 [0.25,590,3]

Medium, Oval, green 0.18 520 2 [0.18,520,2]

Mahout 들 터의 vector 표현은 들 터를

의 원으 표현 는 위 표의 열 표 되 다.

를 분류 기 위한 vector 생 프 램은 다음 같다.

Page 51: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

279

public class MahoutClsterSecond {

public class MahoutClusterFirst {

public static final double[][] points

= {{1, 1}, {2, 1}, {1, 2},

{2, 2}, {3, 3}, {8, 8}, {9, 8}, {8, 9}, {9, 9}};

public static void writePointsToFile(List<Vector> points,

String fileName,

FileSystem fs,

Configuration conf) throws IOException {

Path path = new Path(fileName);

SequenceFile.Writer writer

=new SequenceFile.Writer(fs, conf, path,

LongWritable.class,

VectorWritable.class);

long recNum = 0;

VectorWritable vec = new VectorWritable();

for (Vector point : points) {

vec.set(point);

writer.append(new LongWritable(recNum++), vec);

}

writer.close();

}

public static List<Vector> getPoints(double[][] raw) {

List<Vector> points = new ArrayList<Vector>();

for (int i = 0; i < raw.length; i++) {

double[] fr = raw[i];

Vector vec=new RandomAccessSparseVector(fr.length);

vec.assign(fr);

points.add(vec);

}

return points;

}

public static void main(String args[]) throws Exception {

int k = 2;

List<Vector> vectors = getPoints(points);

File testData = new File("testdata");

if (!testData.exists()) {

testData.mkdir();

}

testData = new File("testdata/points");

if (!testData.exists()) {

Page 52: Designed by Ester - Knowledge Base 전문기업 · PDF file필자 소개 윤형기 임팩트라인 대표 윤형기 대표는 한국외대와 동 대학원(mis) 을 졸업한 후 쌍용정보통신,

280

testData.mkdir();

}

Configuration conf = new Configuration();

FileSystem fs = FileSystem.get(conf);

writePointsToFile(vectors,

"testdata/points/file1", fs, conf);

Path path = new Path("testdata/clusters/part-00000");

SequenceFile.Writer writer = new SequenceFile.Writer(

fs, conf, path, Text.class, Cluster.class);

for (int i = 0; i < k; i++) {

Vector vec = vectors.get(i);

Cluster cluster = new Cluster(

vec, i, new EuclideanDistanceMeasure());

writer.append(new Text(cluster.getIdentifier()),

cluster);

}

writer.close();

KMeansDriver.run(conf, new Path("testdata/points"),

new Path("testdata/clusters"),

new Path("output"),

new EuclideanDistanceMeasure(),

0.001, 10, true, false);

SequenceFile.Reader reader

= new SequenceFile.Reader(fs,new Path("output/"

+ Cluster.CLUSTERED_POINTS_DIR

+ "/part-m-00000"), conf);

IntWritable key = new IntWritable();

WeightedVectorWritable value

= new WeightedVectorWritable();

while (reader.next(key, value)) {

System.out.println(

value.toString() + " belongs to cluster "

+ key.toString());

}

reader.close();

}

}}

게 표현된 vector 터 대 앞 표 을 분류 와

같 알 즘을 선 면 분류 완 되게 된다.