4 구글의 분산 데이터 처리

1,466
-1

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,466
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
38
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

4 구글의 분산 데이터 처리

  1. 1. Sky 4 장 Google의 분산 Data 처리
  2. 2.  Review  MapReduce  Sawzall
  3. 3. Repository DocIndex ② ⑩ ③ Lexicon Crawler 구조 해석 Crawler Crawler ⑧ Search ④ ① Server 단어 처리 URL Server ⑤ ⑨ Link 처리 ⑥ URLlist Barrels Ranking ⑦ Links
  4. 4. Switch Cluster Cluster PC PC PC PC Cluster PC PC Cluster Cluster PC PC Rack Cluster Data Center
  5. 5. Shard Index 검색 후 Cluster 이용자의 목록 반환 검 검색요청 분석 색 Index 요 Server 청 LB GWS Ranking GWS 결과 반영 Good 검색 Document 결과 GWS Server HTML로 정리 정보생성
  6. 6. Client Master Chubby Master Tablet Server Chunk Chunk Server Server Tablet GFS Client Server Tablet H D D Server < GFS > < Bigtable >
  7. 7.  MapReduce  MapReduce – Ex  MapReduce – 전체 모습  3단계 처리  분산 처리  Usage 고속화  실행 과정
  8. 8.  분산처리를 위한 기반기술 MapReduce GFS 방대한 양의 Data 효율적인 처리  MapReduce?  Map + Reduce !
  9. 9.  Map  어떤 data의 집합을 받아들여 새로운 data를 처리하는 기술  < 키, 값 > → < 키’, 값’ >*  주어진 키를 사용하여 새로운 키와 값을 원하는 만큼 생성  Map(2배, [1,2,3]) → [2,4,6]  Reduce  Map에 의해 만들어진 data를 모아서 최종적으로 원하는 결과로 만들어내는 Process  < 키’, 값’ *> → 값’’*  같은 키의 값을 하나로 통합 시킴  Reduce(덧셈, [2,4,6]) → 12
  10. 10. 역 Index docID = 1 wordID docID 위치 벚꽃학교의 페이지 101 1 1 2 1 docID = 2 201 1 2 단풍학교의 페이지 단어 wordID 2 2 학교 101 203 1 3 의 201 2 3 페이지 203 301 1 0 벚꽃 301 302 2 0 단풍 302 Shuffle Reduce Map의 출력 키 값(wordID = docID:위치, …) 키 키 값(docID:위치)의 List 값(docID) 값(docID) (wordID) (wordID) (wordID) 101 = 1:1 2:1 101 1:1 2:1 301 1:0 302 2:0 201 = 1:2 2:2 201 1:2 2:2 101 1:1 101 2:1 203 = 1:3 2:3 203 1:3 2:3 201 1:2 201 2:2 301 = 1:0 301 1:0 203 1:3 203 2:3 302 = 2:0 302 2:0
  11. 11. Master Worker Worker Map Reduce GFS GFS Map Reduce
  12. 12.  Map → Reduce → Shuffle  Map  새로운 키와 값을 출력  Worker에서 중간 file로 저장  Combiner : 중간 file을 쓰기 전에 Reduce한번 진행  Shuffle  Map의 출력을 정리하여 같은 키의 값을 모음  Map과 병행해서 진행됨  Reduce  같은 키를 가진 모든 값이 모이면 Reduce를 호출
  13. 13. 16~64MB 입력 파일 입력 1 입력 2 … 입력 M Map Map … Map 중간 파일 1 2 … 1 2 … R 2 … R Shuffle Shuffle Shuffle Reduce Reduce Reduce 출력 파일 출력1 출력1 출력1
  14. 14.  Counter  Map의 출력을 < 키, “1”> -> Reduce에서 “1” 개수 파악  Key를 증가시킴으로 종류가 다양해짐, 여러 가지 출현 빈도 파악 가능  분산 Grep  Grep : File에서 특정 문자열을 포함하는 행을 찾는 Program  분산 Sort  Shuffle 과정에서 data가 key의 순서대로 정렬됨을 이용  역 Link List  Map에 Web Page의 URL과 HTML 전달  < 자신의 URL, 링크한 곳의 URL >  Web Page별로 링크하고 있는 곳의 List 얻음
  15. 15.  System 구성  수 백에서 수 천대의 machine  분산 Parameter  M Parameter : 입력 파일을 분할하는 숫자  R Parameter : 중간 파일을 분할하는 숫자  Locality  Split → Chunk  Master는 Chunk의 처리를 가능한 Chunk를 가지고 있는 Chunk Server와 동일한 Machine에 할당
  16. 16.  Work Queue  Locality로 인해 Worker각각의 작업량에 편차 발생  Cluster내에 있는 모든 Machine의 CPU부하와 Disk부 하를 감시하고 있다가 부하가 적게 걸려 잇는 Machine에게 Master를 할당  Backup Master  Backup Task  Map과 Reduce가 얼마 남지 않았을 경우 동일한 처 리를 복수의 Machine에서 동시에 실행
  17. 17. ① Map처리가 시작 ② Shuffle이 시작 M M ③ Shuffle이 계속 M ④ Reduce처리가 시작 ⑤ Reduce에 의한 출력 M ⑥ MapReduce의 완료
  18. 18. ① Map처리가 시작 ② Shuffle이 시작 M M ③ Shuffle이 계속 M S ④ Reduce처리가 시작 ⑤ Reduce에 의한 출력 S M ⑥ MapReduce의 완료
  19. 19. ① Map처리가 시작 ② Shuffle이 시작 M S ③ Shuffle이 계속 S S ④ Reduce처리가 시작 ⑤ Reduce에 의한 출력 S S ⑥ MapReduce의 완료
  20. 20. ① Map처리가 시작 ② Shuffle이 시작 S S ③ Shuffle이 계속 S R ④ Reduce처리가 시작 ⑤ Reduce에 의한 출력 R S ⑥ MapReduce의 완료
  21. 21. ① Map처리가 시작 ② Shuffle이 시작 R R ③ Shuffle이 계속 R R ④ Reduce처리가 시작 ⑤ Reduce에 의한 출력 R S ⑥ MapReduce의 완료
  22. 22. ① Map처리가 시작 ② Shuffle이 시작 R ③ Shuffle이 계속 ④ Reduce처리가 시작 ⑤ Reduce에 의한 출력 R ⑥ MapReduce의 완료
  23. 23.  Sawzall?  Sawzall – 처리도  Specification  Command  Protocol Buffer 표준 Aggregator  실제 사용  실행 시간
  24. 24.  분산 처리를 위해 고안된 DSL  DSL(Domain-Specific Language), 특정 도메인 언어  RDB의 SQL과 흡사  GFS와 MapReduce를 기반으로 하는 언어  Map → Filter  Reduce → Aggregator  키와 값의 구별이 없음  Filter에 의해 선택된 값이 Aggregator로 정리
  25. 25.  정적인 유형의 절차형 Programming  기본적인 기능만 지원 → 객체지향 X  Interpreter → 사전 Compile 불필요  한 번 Sawzall을 실행하면 몇천 대의 machine이 움직이기 때문에 사전 체크가 중요
  26. 26.  saw command  인수- -program : Program이 작성된 파일을 지정  인수- -workqueue : program실행할 work queue cluster 이름 지정  인수- -input_files : 입력 파일 지정  인수- -destination : 출력 파일 지정  dump command  인수- -source : saw command에서 사용한 출력 파일 지정  인수- -format : 출력 형식 지정
  27. 27.  Record  한 번에 읽어 들이는 data의 단위  Protocol Buffer  쓰는 쪽과 읽는 쪽의 record형식의 통일  Google 내부에서 읽기/쓰기가 가능한 data 는 Protocol Buffer에 의해 통일됨  Process 간 데이터 교환
  28. 28.  Collection  Emit된 값을 모두 그대로 모음  Sample  일부 값만을 불규칙적으로 꺼냄 – data sampling  Sum  Maximum  Weight  Top  가장 많이 등장하는 값을 찾음  출현 횟수의 조사  기타 Agrregator  Quantile  Unique
  29. 29.  평균값과 분산  입력 파일에서 다수의 수치 → 평균, 분산  Page Rank  Domain별로 Page Rank가 가장 높은 Web Page  지역별 access 수  전 세계의 검색 요청 로그를 분석, 이용자의 장소 별 검색 수 측정
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×