Map Reduce (1)

ZOE_:P·2022년 9월 16일
0

🌑 구글의 map reduce 정의

Interface that enables automatic parallelization & distribution of large scale computation

= 싸고 대중적인 PC들을 묶어 돌리자.

하지만, 싼 pc들, 싼 네트워크들로 인해 속도에 제한이 생김
→ 데이터의 흐름을 줄이려고 많은 노력함.

🌒Large-scale Computing

challenge )
how do you distribute computation?

computation )
사용자가 정의한 map, reduce 함수의 계산

  • 사용자는 제공되는 인터페이스에 맞게 map,reduce 함수만 짜고,
    병렬처리, sync 처리 등의 작업은 모두 system에서 자동으로 해줌

=> ‼️ 성능이 나쁜 네트워크로 인해 '데이터 이동'을 '최소화'해야한다

  • bottleneck이 생기는 이유는 네트워크의 성능 때문 ( 네트워크의 성능이 아무리 좋아도 빅데이터의 이동을 감당할 만큼이 안됨 )

따라서

primary node -> local node
기존 ) 데이터를 보냄
map reduce ) 코드(map,reduce)를 보냄

challenge
how can we make it easy to write distributed programs?
how to deal with machine failure?

- copying data over a network는 시간이 오래걸림

SOLUTION
1. bring computation close to the data
- 데이터를 넘기는게 아니라 code를 넘김
2. store files multiple times for reliability (replicatio)
- 한 데이터를 여러 복사본으로 저장 ( 기본값 : rf = 3 (replication factors))

🌓 storage infrastructure

node가 fail한다면 data를 어떻게 persistently 저장할 것인가
-> sol ) distributed File System (DFS) 분산파일시스템
: provides global file namespace

🗂️ 파일 시스템
: 파일들의 쪼개진 위치 정보를 가짐
: 하나의 파일은 저장될 때 작은 블록의 크기로 인해 기본적으로 분산되어 저장된다.
: 파일 시스템은 몇개의 블록, 어느 블록에 저장되는지의 정보(주소)를 찾아서 읽어옴

WORM (Write Once Read Many)
: 보통 빅데이터는 한번 저장되면 수정되는 일이 거의 없고 거의 대부분 read, append가 일어난다.

- 👷🏻‍♂️Data nodes ( chunk servers )

: file이 contiguous chunk로 쪼개지고, 각 청크는 replicated 되며 다른 rack들에 저장된다. ( reliability 때문 )

- 🤴🏻Master node ( Name node )

: 파일들의 저장위치에 대한 metadata를 저장한다.
master 가 죽으면 답이 없기 때문에 replicate 옵션이 존재한다

- client library for file access

: talks to master to find chunk servers

profile
🖥️

0개의 댓글