29
하둡 (Hadoop) 실행 단계 겹치기 김동원 POSTECH 1

하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

하둡 (Hadoop) 실행단계겹치기김동원POSTECH

1

Page 2: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

목차

1) 하둡소개2) 하둡실행단계겹치기

2

Page 3: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

빅데이터 & 오늘발표

• 빅데이터정의 (정보통신산업진흥원, ETRI)

▫ “기존데이터에비해너무커서, 기존방법이나도구로수집, 저장, 검색, 분석, 시각화하기어려운정형또는비정형데이터”

• 오늘발표▫ 빅데이터처리프로그램의성능향상 하둡 (Hadoop)

3

Page 4: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

동물별평균몸무게측정

4

11

동물 무게

원숭이 [7, 8, 9]

양 [150, 145, 155]

닭 [3.3, 3.6, 3.9, 3.6]

2 3

평균몸무게 = 무게합/개체수

Page 5: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

샘플 – 세상모든원숭이, 닭, 양

• 문제자체의난이도는쉬움• 5분안에계산해야한다면?▫ 10,000대의컴퓨터를사용하면 5분안에가능!▫ 복잡해짐 (작업스케쥴링, 동기화, 오류제어, …)

5

Page 6: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

하둡 (Hadoop)1. 프로그래밍모델▫ 사용자는작은데이터를처리하듯프로그래밍가능 Map과 Reduce라는함수만작성하면끝!

2. 하둡런타임 (runtime)▫ 잡일처리당번 작업스케쥴링 작업들동기화 오류처리 …

6

Page 7: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

하둡실행단계들

1) 쌍만들기 (Mapping)• 사용자정의 Map 함수적용• (key, value) 형태의쌍들을추출

2) 모으기 (Shuffling)• 런타임이같은 Key를가지는쌍끼리모아줌

3) 줄이기 (Reducing)• 사용자정의 Reduce 함수적용• 값은 Key를가지는쌍들에대한연산수행

7

Page 8: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

1) 쌍만들기 (Mapping)

• map▫ 호출 : map([원숭이2, 닭2, 닭3, 원숭이3])▫ 결과 : [(원숭이, 8 kg), (닭, 3.6 kg), (닭, 3.9 kg), (원숭이, 9 kg)]

• def map(animals):for animal in animals:

collect(animal.kind, animal.weight)

겨우 2줄!

(key, value) 형태의쌍들을추출

8

Page 9: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

2) 모으기 (Shuffling)

런타임이같은 Key를가지는쌍끼리모아줌

9

Page 10: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

2) 모으기 (Shuffling)

런타임이같은 Key를가지는쌍끼리모아줌

10

Page 11: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

2) 모으기 (Shuffling)

런타임이같은 Key를가지는쌍끼리모아줌

11

Page 12: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

3) 줄이기 (Reducing)

• Reduce▫ 호출 : reduce(닭,

[3.3, 3.9, 3.6, 3.9])▫ 결과 : 닭, (3.3 + 3.9 + 3.6 + 3.9)/4

• def reduce(kind, weights):write(kind, sum(weights)/len(weights) )

겨우 1줄!

값은 Key를가지는모든쌍대한연산수행

12

Page 13: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

목차

1) 하둡소개2) 하둡실행단계겹치기

13

Page 14: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

하둡런타임의한가지문제! (여러 문제중..)

• 쌍만들기작업수가성능에큰영향을미침▫ 하나의입력조각을하나의쌍만들기작업이처리

(1) 쌍만들기

2000 400 600 800 1000 seconds

(2) 모으기

(3) 줄이기

쌍만들기작업들

14

Page 15: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

목표

1) 쌍만들기작업수와무관하게성능잘나오게하기

2) ??

15

Page 16: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

입력을나누는방법

* 200* 1600

방법1 방법2

• 하나의입력조각을하나의쌍만들기작업이처리

16

Page 17: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

쌍만들기작업수와하둡성능

2000 400 600 800 1000 1186 secs

* 200* 1600

방법1

방법2

* 동시실행가능한작업숫자 = 200

0 200 400 662 secs

200

1600

17

Page 18: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

하둡런타임특징

• ‘(2) 모으기’는몇개의 ‘(1) 쌍만들기’가끝난후에시작

(1) 쌍만들기

2000 400 600 800 1000 seconds

(2) 모으기

(3) 줄이기

쌍만들기작업수

18

Page 19: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

하둡실행단계들 (약간기술적으로..)

쌍만들기

1

쌍만들기

2

(1) 쌍만들기과정 (1.5) 합치기

임시파일

임시파일

임시파일

모으기입력

임시파일

임시파일

임시파일

모으기입력

줄이기작업

(2) 모으기

줄이기작업

합침합침

합침합침

• (1) 쌍만들기, (1.5) 합치기, (2) 모으기가동시에진행이안됨

(3) 줄

19

Page 20: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

적은 쌍 만들기 작업들로 과정 겹치기

줄이기작업

(2) 모으기

줄이기작업

• 입력조각을작게하지않더라도(1) 쌍만들기, (2) 모으기가동시에진행됨

(3) 줄

쌍만들기

1

쌍만들기

2

(1) 쌍만들기과정

임시파일

임시파일

임시파일

임시파일

임시파일

임시파일

모으기입력

모으기입력

모으기입력

모으기입력

모으기입력

모으기입력

20

Page 21: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

• Before/After 모두 200개의쌍만들기작업들생성

적은 쌍 만들기 작업들로 과정 겹치기

2000 400 600 800 1000 1186 secs

200

Before After

0 200 400 723 secs

200

* 200

21

Page 22: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

왜하둡은 (1.5) 합치기를할까?

• 오류복구알고리즘을쉽게만들기위해서!

• 오류복구알고리즘의중요성▫ 7일동안꼬박계산을해야하는작업이있는데, 하나의쌍만들기작업결과가 6일째밤손실되었다면? 처음부터다시? 7일동안? 그쌍만들기작업만다시실행!

22

Page 23: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

제안의 장/단점 : “살을 주고 뼈를 친다!”

• 살(단점)▫ 오류복구알고리즘이 *약간*복잡해짐

• 뼈(장점)▫ 사용자편의성 입력을몇개의조각으로나눌지걱정하지않아도,항상좋은성능이나옴

23

Page 24: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

목표

1) 쌍만들기작업수와무관하게성능잘나오게하기

2) 단계를겹칠때, 디스크를효율적으로사용하기▫ 단순히겹치는것이상으로성능향상가능!

24

Page 25: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

디스크접근횟수줄이기

25

Old쌍

만들기 합치기* 모으기서버

Network

New

쌍만들기

모으기서버

Network

* 공사중오류복구알고리즘을위해!

Page 26: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

파일단편화방지하기

26

200개의모으기작업들

• 단순한단계겹치기는많은 Thread들이무분별하게Disk에접근하는것을막지못함

• 이때 (3) 모으기입력파일은 File fragmentation 정도가심해짐

800개의모으기작업들

50초미만100초이상

Page 27: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

작업 우선 순위에 따른 Bandwidth 할당

27

단순겹치기 잘~ 겹치기

쌍만들기

모으기

Page 28: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

목표

1) 쌍만들기작업수와무관하게성능잘나오게하기

2) 단계를겹칠때, 디스크를효율적으로사용하기▫ 단순히겹치는것이상으로성능향상가능!

1) 디스크접근횟수줄이기2) 파일단편화방지하기3) 작업우선순위에따른 Bandwidth 할당

28

Page 29: 하둡 (Hadoop) 실행단계겹치기 - Seoul National Universityrosaec.snu.ac.kr/meet/file/20130202d.pdf · 2018-04-12 · 하둡(Hadoop) 1. 프로그래밍모델 사용자는작은데이터를처리

29