23
An Introduction to Hadoop 기기 2 기 기 기 기 2014. 03. 07

An introduction to hadoop

Embed Size (px)

Citation preview

Page 1: An introduction to hadoop

An Introduction to

Hadoop

기술 2 팀 강 민 재

2014. 03. 07

Page 2: An introduction to hadoop

빅데이터 소개 - 빅데이터 시대 - 빅데이터란 ? - 빅데이터 성격

하둡 소개 - 하둡이란 ? - 하둡의 등장배경

하둡 & 하둡 보조기술 - 하둡 구성기술 (HDFS & MapReduce) - 하둡을 위한 보조기술 - 데이터 처리 과정

목 차

활용사례 - 하둡에코시스템 활용 사례 - 빅데이터 활용 사례

Page 3: An introduction to hadoop

빅데이터 (BigData) 시대

Page 4: An introduction to hadoop

빅데이터 (BigData)란 ?

빅데이터 (BigData) 의 정의

사전적 의미기존 데이터베이스 관리도구로 데이터를 수집 , 저장 , 관리 , 분석할 수 있는 역량을 넘어서는 대량의 정형 또는 비정형 데이터 집합 및 이러한 데이터로부터 가치를 추출하고 결과를 분석하는 기술

또다른 의미정해진 혹은 정해지지 않은 아주 많은 (Big) 정보들 (Data) 을 수집 , 저장 , 관리 , 분석하여 활용하는 기술 .

구 분 기존 Data

데이터 양 • 테라바이트 수준

데이터 유형 • 정형데이터 중심

프로세스및 기술

• 프로세스 및 기술이 상대적으로 단순• 원인 - 결과 규명 중심• 처리 / 분석 과정이 정형화 .

빅데이터 (BigData)

•페타바이트 수준 ( 최소 100 테라바이트 이상 )

•소셜 미디어 데이터 , 로그 파일 , 클릭스트림 데이터 , 콜 센터 로그 , 통신 CDR 로그 등 비정형 데이터의 비중이 높음•처리의 복잡성을 증대시키는 요인 .

•다양한 데이터 소스 , 복잡한 로직 처리 , 대용량 데이터 처리 등으로 인해 처리 복잡도가 매우 높아 , 분산 처리 기술이 필요•상관관계 규명 중심•Hadoop, R, NoSQL 등 개방형 소프트웨어

Page 5: An introduction to hadoop

빅데이터 (BigData) 성격

V3 또는 V4 라 표현되는 빅데이터 (BigData) 성격

가트너 그룹 : Volume( 데이터 규모 ), Variety( 데이터 다양성 ), Velocity( 데이터 변화속도 )IBM : +Veracity( 진실성 )브라이언 홉킨스 : +Variablility( 가변성 )

Volume ( 데이터 규모 )

MB, GB단위 규모 TB, PB, EB

단위

• 데이터 소스의 수와 종류의 다양성• 정형 데이터 , 반정형 데이터 , 비정형 데이터• Crowd sourcing ( 클라우드 소싱 )

Variety ( 데이터 다양성 )

정형 데이터 비정형 데이터

고객 신상 데이터매출 데이터재고 데이터

회계 데이터 등

동영상 음악 메시지

소셜미디어

위치정보 게시물

• 데이터의 짧은 변경 주기• 실시간 또는 스트리밍 처리 , 배치 처리• CEP (Complex Event Processing)• Machine learning ( 기계 학습 )

Velocity ( 데이터 변화속도 )

유통활동주기수시간 ~ 수주 분 , 초

단위유통활용

• 대규모의 데이터 (100 TB 이상의 데이터 )KB (10^3, 2^10, KiloByte), MB (10^6, 2^20, MegaByte)GB (10^9, 2^30, GigaByte), TB (10^12, 2^40, TeraByte)PB (10^15, 2^50, PetaByte), EB (10^18, 2^60, ExaByte)ZB (10^21, 2^70, ZettaByte), YB (10^14, 2^80, YottaByte)• 메모리 기반 분석 , 분산 컴퓨팅• Collective intelligence ( 집단 지성 )

Page 6: An introduction to hadoop

RDBMS NoSQL

•엔티티 간의 관계에 중점을 두고 테이블 구조를 설계하는 방식•데이터가 여러 행으로 존재•핵심데이터 관리

•관계형데이터모델과 SQL 문을 사용하지 않는 데이터베이스 시스템 혹은 저장소•단순히 키와 값의 쌍으로만 이루어져 있다• Join 이 없다•데이터를 하나의 집합된 형태로 저장

하둡 (Hadoop) 의 정의

하둡 (Hadoop) 이란 ?2005 년 더그 커팅과 마이크 카파렐라가 개발 .대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈 소스 프레임워크 .데이터의 복제본을 저장하기 때문에 데이터 유실이나 장애가 발생했을 때도 데이터의 복구가 가능 .분산파일시스템인 HDFS(Hadoop Distributed File System) 에 데이터를 저장하고

분산처리시스템인 MapReduce 를 이용해 데이터를 처리 .

• Hadoop 이 MS-SQL, Oracle, MySQL 같은 RDBMS 를 대체한다 ?• Hadoop 은 RDBMS 가 아니니까 NoSQL 이다 ?

Page 7: An introduction to hadoop

MapReduce분산컴퓨팅을 위한 자바 프로그램

하둡 (Hadoop) 의 등장배경

GFS (Google File System)

2004 년2002 년 2006 년2003 년 2008 년

NDFS HadoopGFS Web System

검색 페이지 수한계

전환점 야후 - 시연루씬의

독립 서브 프로젝트NDFS+MapReduce

너치 분산파일시스템 오픈소스 구현Nutch+GFS

• 여러 대의 컴퓨터를 조합해 대규모 기억장치를 만드는 기술

• 분산파일 시스템으로 구글의 독자적인 기술• 단일서버 (master) 와 여러 청크서버

(chunkserver) 들로 구성

MapReduce

분산컴퓨팅을 위한 자바 프로그램

ApplicationGFS

client

GFS chunkserverLinux file system

GFS chunkserverLinux file systemData messages

Control messages… …

GFS mas-ter

File namespace Chunk 2ef()

Instructions to chunkserver

Chunkserver state

(file name, chunk, index)

(chunk handle, chunk

locations)

/foo/bar

Page 8: An introduction to hadoop

• 비즈니스에 효율적으로 적용하기 위한 다양한 서브 프로젝트

하둡 & 하둡 보조 기술

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터

(Zookeeper)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

Hadoop

Page 9: An introduction to hadoop

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터

(Zookeeper)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

하둡 구성기술 - HDFS

수십 테라바이트 또는 페타바이트 이상의 대용량 파일을 분산된 서버에 저장하고 , 많은 클라이언트가

저장된 데이터를 빠르게 처리할 수 있게 설계된 파일 시스템 .

HDFS (Hadoop Distributed File System)

Page 10: An introduction to hadoop

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터

(Zookeeper)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

하둡 구성기술 - MapRe-duce

대규모 데이터를 여러 대의 컴퓨터에 분산하여 병렬적으로 처리하는 맵 (Map) 단계

중간 결과물을 이용하여 최종 결과에 적합한 데이터를 정리하는 리듀스 (Reduce) 단계

MapTask

ReduceTask

FinalData

(key 1, value)(key 2, value)(key 3, value)

(key 1, value)(key 1, value)(key 1, value)

• Map– 데이터를 가공해서 분류

• Reduce– 분류된 데이터를 통합

Shuffling

맵리듀스 (MapReduce)

Page 11: An introduction to hadoop

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터(Zookeep

er)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

하둡 보조기술 - 분산코디네이터

분산코디네이터(Zookeep

er)

분산환경에서 서버 간의 상호 조정이 필요한

다양한 서비스를 제공하는 시스템 .

• 주키퍼 (zookeeper) 란 ?- zookeeper 는 동물 사육사라는 이름으로 분산처리 시스템에서 일괄적으로 관리해주는 시스템을 뜻합니다 .- MapReduce 를 위한 프로그램 코드의 생성

• 주키퍼 (zookeeper) 는 왜 필요한가 ?- 분산처리 환경에서는 예상치 못하는 예외적인 부분이 많이 발생하게 되는데 , 주로 네트워크장애 , 일부 서비스 / 기능 예상치 못한 처리로 중지나 장애 , 서비스 업그레이드 , 서버 확장 등에 문제가 발생할 수 있습니다 .이러한 점들을 쉽게 해결 할 수 있는 시스템이 주키퍼입니다 .

• 주키퍼 (zookeeper) 의 특징- 네임서비스를 통한 부하분산- 분산락이나 동화 문제 해결- 장애상황 판단 및 복구- 환경설정 관리

주키퍼 (zookeeper)

Page 12: An introduction to hadoop

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터(Zookeep

er)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

하둡 보조기술 – 워크 플로우 관리

워크 플로우관리

(Oozie)

작업을 관리하는 워크플로우 및

코디네이터 시스템

• 우지 (Oozie) 란 ? - Hadoop Job 을 관리하기 위한 워크플로우 스케줄러 시스템이다 .

• 우지 워크플로우는 흐름제어노드와 액션노드로 구성된다 . 흐름제어노드는 워크플로우의 실행 흐름을 제어하고 실제로 필요한 연산은 액션노드에서 실행된다 .

• 각 액션 간 서로간의 제어 의존성을 지닌다 .

우지 (Oozie)

Page 13: An introduction to hadoop

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터(Zookeep

er)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

하둡 보조기술 – 분산 데이터베이스

분산데이터베이스

(HBase)

HDFS 기반의 컬럼 기반

데이터베이스

데이터 마이닝(Mahout)

데이터마이닝 알고리즘을

구현

• HBase 란 ?- HDFS 기반의 컬럼 구조 Database입니다 .

• 구글 Bigtable 의 설계를 기반으로 개발

• 인터페이스 제공

• 대용량 데이터를 안정적으로 처리

HBase

Page 14: An introduction to hadoop

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터(Zookeep

er)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

하둡 보조기술 – 메타데이터 관리

메타데이터 관리(HCatalog)

생성한 데이터를 위한

테이블 및 스토리지 관리

서비스

• HCatalog 란 ?- 하둡으로 생성한 데이터를 위한 테이블 및 스토리지 관리 서비스 .

HCatalog

HCatalog

PigHive

MapReduce

RCFileText File

Sequence File

Page 15: An introduction to hadoop

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터(Zookeep

er)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

하둡 보조기술 – 정형 데이터 수집

정형 데이터 수집(Sqoop, Hiho)

대용량 데이터 전송 솔루션

스쿱 (Sqoop)• 다양한 DBMS 의 자료를 HDFS 로 Import/Export

- Command line 인터페이스- JDBC 지원하는 모든 DBMS- RDBMS(Oracle, Mysql) + Data Warehouse + NoSQL Datastore

• MapReduce 를 위한 프로그램 코드의 생성

• 하둡기반 시스템과의 통합- Hive, HBase, Oozie

• RBDMS 와의 고성능 Connector 지원• Cloudera 에서 개발

Page 16: An introduction to hadoop

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터(Zookeep

er)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

하둡 보조기술 – 비정형 데이터 수집

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산환경에서 정의되어 있지 않은 데이터를 HDFS 에 저장

척와 (Chukwa)• 척와 (Chukwa) 란 ?

- 분산되어 있는 서버에서 로그 데이터를 수집하고 , 수집된 데이터를 저장하며 분석함 .

• 하둡클러스터의 로그 , 서버의 상태 정보 등을 관리 할 수 있음 .• 실시간 분석 가능 , 수집된 로그 파일을 하둡 파일 시스템에 저장 .

플럼 (Flume)• 플럼 (Flume) 란 ?

- 데이터 발생원으로부터 데이터를 수집해 파일 시스템에 안정적으로 저장

• 플럼 (Flume) 의 특징- 기능 확장성- 시스템 신뢰성- 시스템 확장성- 관리 용이성

스크라이브 (Scribe)• 페이스북에서 개발한 데이터 수집 플랫폼 . Chuckwa 와는 다르게 중앙 집중

서버로 전송하는 방식 .

Page 17: An introduction to hadoop

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터(Zookeep

er)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

하둡 보조기술 – 데이터 마이닝

데이터 마이닝(Mahout)

데이터마이닝 알고리즘을

구현

머하웃 (Mahout) • 머하웃 (Mahout) 란 ?

- 하둡 기반으로 데이터 마이닝 알고리즘을 구현한 오픈 소스 .

Page 18: An introduction to hadoop

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터(Zookeep

er)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

하둡 보조기술 - 직렬화

직렬화(Avro)

데이터 직렬화 지원

• 아브로 (Avro) 란 ?- 데이터 직렬화를 지원하는 프레임워크 .

• JSON 을 이용해 데이터 형식과 프로토콜을 정의하며 , 작고 빠른 바이너리 포맷으로 데이터를 직렬화합니다 .

아브로 (Avro)

Page 19: An introduction to hadoop

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터(Zookeep

er)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

하둡 보조기술 – 데이터 분석

데이터 분석(Pig, Hive)

HDFS 에 저장된

데이터를 프로그램이

아닌 스크립트 언어로 쉽게

분석

피그 (pig)• 피그 (pig) 란 ?

- 대용량 데이터셋을 다루기 위한 스크립트 언어 .• 개발이 복잡하고 , 시간이 오래 걸리는 MapReduce 의 단점을 보완하기 위한 것 .

• 내부적으로 MapReduce 로 변환해서 실행해야 하므로 MapReduce 에 비해 성능이 떨어집니다 .

• 기존 MapReduce 보다는 과부하가 불가피하게 발생 .• 야후가 개발 .• SQL 과 유사한 스크립트를 이용해 데이터 처리 기능 제공 .

하이브 (Hive)• 하이브 (Hive) 란 ?

- Hive 는 SQL 와 유사한 HiveQL 문법을 사용하여 MapReduce 를 작성하게 해주는 도구이다 .

• HiveQL 이라고 하는 SQL 과 유사한 쿼리를 사용 .• 페이스북 주도로 개발 .• RDBMS 처럼 테이블을 이용하여 쿼리를 수행하기 때문에

정형화 되지 않은 입력 소스들은 분석이 쉽지 않다 .

Page 20: An introduction to hadoop

하둡 과 하둡 보조기술을 이용한 데이터 처리

직렬화(Avro)

정형 데이터 수집(Sqoop, Hiho)

비정형 데이터 수집(Chukwa, Flume, Scribe)

분산 데이터 저장(HDFS)

분산 데이터 처리(MapReduce)

메타데이터 관리(HCatalog)

데이터 마이닝(Mahout)

데이터 분석(Pig, Hive)

분산코디네이터(Zookeep

er)

워크 플로우관리

(Oozie)

분산데이터베이스

(HBase)

실시간 SQL 질의(Impala, Tajo)

2

2

비정형데이터 2 정형

데이터2

Job등록 1

3 36 결과

출력

3

4 5

Page 21: An introduction to hadoop

• 기업 별 Hadoop 구축 구성도

하둡 에코시스템 활용사례

Page 22: An introduction to hadoop

빅데이터 (BigData) 활용 사례

•쇼핑몰 이용자의 구매내역을 빅데이터 기술을 활용하여 소비패턴을 분석하여 상품을 추천함으로써 전체 매출의 30% 상승에 기여함 .

• ‘페이스북 익스체인지 (Facebook Exchange)’ 라는 실시간 맞춤형 광고 서비스를 제공하여 기존 페이스북 광고에 비해 최대 16 배 이상 비용 대비 효과를 보임

•예상되는 소비자의 행동이 아닌 실제로 관찰되고 발생된 소비자의 행동정보를 분석함으로써 분석의 정확성을 높임

Page 23: An introduction to hadoop

Questions