Upload
younggyu-chun
View
129
Download
1
Embed Size (px)
Citation preview
빅데이터 플랫폼 진화전영규
1
재미있는 빅데이터 일화
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
3
Moore’s Law Moore’s Law - 반도체 직접회로 성능이 18 개월 마다 2 배씩 증가- 2005 년도 이후 부터는 2 배씩 증가 하지 못하고 있음- 대용량의 데이터 빠른 속도로 처리 / 저장 한계
Computing cycles, storage- 저장공간 한계- 데이터의 일부분 저장
4
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
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
YARN 처리 과정
7
YARN 처리 과정
8
HDFS(Hadoop Distributed FileSystem)- 큰 크기의 파일을 각각의 노드에 분산 저장
- HDFS 는 default block size 128MBblock size : 디스크가 한번에 읽거나 쓸 수 있는 크기
-block size 가 크면 seeks time 감소
9
MapReduce- 두 단계로 분리해서 처리 (Map, Reduce)
- 각 단계에서의 input, output 은 key-value 형태
- 여러 Map, Reduce 를 생성해 parallel 로 데이터 처리
10
Mapreduce weaknesses- 개발 하기 쉽지 않음
- 시작 하는데 시간이 오래 소요됨 10 초 ~ 30 초
- fault tolerance 위해 디스크에 자주 write
- machine learning 처럼 iterative algorithm 처리에 취약
11
HIVE- 벌집 ( 동물 / 곤충과 관련된 이름 )
- SQL 사용
- Mapreduce 보다 쉬운 개발
12
PIG
- 동물 이름 사용
- Yahoo 에서 개발 (2007)
- Pig Latin Scripts
13
Spark
- UC Berkeley’s AMPLab
- open-source
- in-memory 기반
- Up to 100x faster on disk, 10x in memory
- scala, python, java 언어 사용 가능
- unified platform14
Mapreduce VS Spark
15
16
RDD(Resilient distributed dataset)- 작업 초기부터 어떻게 만들어졌는지 계보 lineage 를 기록해 fault-tolerance
- spark 에서 모든 작업은create RDD, transforms existing RDD, operations on RDD
- 각각의 RDD 는 여러개의 partitions 으로 쪼개지며 , partitions 은 여러 노드에서 병렬로 처리
17
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
RDD Basics- lazy fashion
action 을 수행할 때 transformation 실행action 을 수행 할 때는 lineage 만 계속 플레이
- WHY lazy fashion?transformation 기억 하고 있다가 action 단계에서 필요한 데이터만 접근자원 절약
19
SPARK SQL- SQL, HiveQL 사용
- SQL 에 익숙한 개발자들에게 엄청 편함
- Mapreduce 는 join 이 굉장히 어렵지만 SparkSQL 사용으로 Join 이 쉬움
20
Zeppelin 데모
21
Spark MLlib
22
Collaborative Filtering- 1998 Amazon 에서 개발
- E-Commerce 혹은 많은 추천 사이트 에서 사용
- 데이터 행렬로 표현
- 두 아이템 간의 유사도 계산
- Item-Based, User-Based
23
port 와 Tri Tip 유사도 계산
port 와 Unagi Don 유사도 계산
Euclidean Distance
Association Rule(FP-growth)- Association Analysis( 연관 분석 )
- 여러 트랜잭션에서 자주 구매 하는 상품 연관 분석
24
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
Apriori/FP-Growth
26
자주 구매 하는 상품 자주 구매 하는 상품
참고 서적
27
참고 사이트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