28
빅빅빅빅 빅빅빅 빅빅 빅빅빅 1

빅데이터 플랫폼 진화 공개용

Embed Size (px)

Citation preview

Page 1: 빅데이터 플랫폼 진화 공개용

빅데이터 플랫폼 진화전영규

1

Page 2: 빅데이터 플랫폼 진화 공개용

재미있는 빅데이터 일화

Forbes 원문 기사http://www.forbes.com/sites/kashmirhill/2012/02/16/how-target-figured-out-a-teen-girl-was-pregnant-before-her-father-did/#40ff808e34c6

2

Page 3: 빅데이터 플랫폼 진화 공개용

3

Page 4: 빅데이터 플랫폼 진화 공개용

Moore’s Law Moore’s Law - 반도체 직접회로 성능이 18 개월 마다 2 배씩 증가- 2005 년도 이후 부터는 2 배씩 증가 하지 못하고 있음- 대용량의 데이터 빠른 속도로 처리 / 저장 한계

Computing cycles, storage- 저장공간 한계- 데이터의 일부분 저장

4

Page 5: 빅데이터 플랫폼 진화 공개용

Hadoop- Google File System Paper -> Mapreduce 탄생

- Mapreduce 는 Apache Nutch 에서 시작 했으나 Hadoop 프로젝트로 이동

- 야후에서 근무 했던 Doug Cutting 개발을 했고 아들의 코끼리 장난감을 보고 이름 지음빅데이터 ecosystem 이 동물 이름 사용

- 대규모의 컴퓨터 클러스터에서 동작하는 분산 오픈소스 프레임워크Hadoop ecosystem 은 동물과 관련된 프로젝트 이름이 많다

Mapreduce- parallel processing(computing 한계 극복 )- 클러스터 안에 있는 각각의 노드들에게 작업을 분산 처리

HDFS(Hadoop File System)- distributed file system( 저장 공간 한계 극복 )

Resource Manager(YARN) 5

Page 6: 빅데이터 플랫폼 진화 공개용

Hadoop YARNContainer- job 또는 application 은 container 에서 실행- 시스템 리소스 (CPU, MEM) 이 container 에 할당

Node Manager- 각각의 노드는 Node manager 소유 - container 를 application 에게 할당- 각각의 상태를 모니터링 하면서 Resource Manager 에게 상황을 리포트 하며 Resource Manager 는 전체 적으로 리소스 상황을 파악 할 수 있음

Resource Manager- resource scheduler- 각 노드의 시스템 리소스 파악 후 application 에게 자원 할당

Application Master- Resource Manager 에게 시스템 리소스 요청- task 를 실행 시키는 역할

Resource Manager

Application Master

6

Page 7: 빅데이터 플랫폼 진화 공개용

YARN 처리 과정

7

Page 8: 빅데이터 플랫폼 진화 공개용

YARN 처리 과정

8

Page 9: 빅데이터 플랫폼 진화 공개용

HDFS(Hadoop Distributed FileSystem)- 큰 크기의 파일을 각각의 노드에 분산 저장

- HDFS 는 default block size 128MBblock size : 디스크가 한번에 읽거나 쓸 수 있는 크기

-block size 가 크면 seeks time 감소

9

Page 10: 빅데이터 플랫폼 진화 공개용

MapReduce- 두 단계로 분리해서 처리 (Map, Reduce)

- 각 단계에서의 input, output 은 key-value 형태

- 여러 Map, Reduce 를 생성해 parallel 로 데이터 처리

10

Page 11: 빅데이터 플랫폼 진화 공개용

Mapreduce weaknesses- 개발 하기 쉽지 않음

- 시작 하는데 시간이 오래 소요됨 10 초 ~ 30 초

- fault tolerance 위해 디스크에 자주 write

- machine learning 처럼 iterative algorithm 처리에 취약

11

Page 12: 빅데이터 플랫폼 진화 공개용

HIVE- 벌집 ( 동물 / 곤충과 관련된 이름 )

- SQL 사용

- Mapreduce 보다 쉬운 개발

12

Page 13: 빅데이터 플랫폼 진화 공개용

PIG

- 동물 이름 사용

- Yahoo 에서 개발 (2007)

- Pig Latin Scripts

13

Page 14: 빅데이터 플랫폼 진화 공개용

Spark

- UC Berkeley’s AMPLab

- open-source

- in-memory 기반

- Up to 100x faster on disk, 10x in memory

- scala, python, java 언어 사용 가능

- unified platform14

Page 15: 빅데이터 플랫폼 진화 공개용

Mapreduce VS Spark

15

Page 16: 빅데이터 플랫폼 진화 공개용

16

Page 17: 빅데이터 플랫폼 진화 공개용

RDD(Resilient distributed dataset)- 작업 초기부터 어떻게 만들어졌는지 계보 lineage 를 기록해 fault-tolerance

- spark 에서 모든 작업은create RDD, transforms existing RDD, operations on RDD

- 각각의 RDD 는 여러개의 partitions 으로 쪼개지며 , partitions 은 여러 노드에서 병렬로 처리

17

Page 18: 빅데이터 플랫폼 진화 공개용

RDD Basics- RDD 를 생성 하는 방법은 2 가지

데이터 셋을 로딩 하거나 , 병렬처리가 가능한 collection 생성

- transformations이미 만들어진 RDD 로 부터 새로운 RDD 를 만든다 . (RDD Immutable)데이터를 변형 할때 val order = orderEventRow.filter(t => t.contains("\t"))

- actions값을 계산 하거나 외부 저장 매체에 저장 하기 위해 사용orderEventRow.first(), orderEventRow.saveAsTextFile(“/test/test.log”) 18

Page 19: 빅데이터 플랫폼 진화 공개용

RDD Basics- lazy fashion

action 을 수행할 때 transformation 실행action 을 수행 할 때는 lineage 만 계속 플레이

- WHY lazy fashion?transformation 기억 하고 있다가 action 단계에서 필요한 데이터만 접근자원 절약

19

Page 20: 빅데이터 플랫폼 진화 공개용

SPARK SQL- SQL, HiveQL 사용

- SQL 에 익숙한 개발자들에게 엄청 편함

- Mapreduce 는 join 이 굉장히 어렵지만 SparkSQL 사용으로 Join 이 쉬움

20

Page 21: 빅데이터 플랫폼 진화 공개용

Zeppelin 데모

21

Page 22: 빅데이터 플랫폼 진화 공개용

Spark MLlib

22

Page 23: 빅데이터 플랫폼 진화 공개용

Collaborative Filtering- 1998 Amazon 에서 개발

- E-Commerce 혹은 많은 추천 사이트 에서 사용

- 데이터 행렬로 표현

- 두 아이템 간의 유사도 계산

- Item-Based, User-Based

23

port 와 Tri Tip 유사도 계산

port 와 Unagi Don 유사도 계산

Euclidean Distance

Page 24: 빅데이터 플랫폼 진화 공개용

Association Rule(FP-growth)- Association Analysis( 연관 분석 )

- 여러 트랜잭션에서 자주 구매 하는 상품 연관 분석

24

Page 25: 빅데이터 플랫폼 진화 공개용

Association Rule(FP-growth)

25

Confidence is defined for an association rule like {diapers} -> {wine}

Support is defined as the percentage of dataset that contains this itemset

Page 26: 빅데이터 플랫폼 진화 공개용

Apriori/FP-Growth

26

자주 구매 하는 상품 자주 구매 하는 상품

Page 27: 빅데이터 플랫폼 진화 공개용

참고 서적

27

Page 28: 빅데이터 플랫폼 진화 공개용

참고 사이트https://www.youtube.com/watch?v=x8xXXqvhZq8 (Intro to Apache Spark for Java and Scala Developers )https://www.youtube.com/watch?v=PFK6gsnlV5E (TRAINING Intro to Apache Spark - Brian Clapper)http://www.slideshare.net/SparkSummit/intro-to-spark-development (Intro to Spark development)

28