티스토리 뷰

TF/DB

map-reduce 컨셉

bramach 2018. 3. 31. 23:00
  • 분산 환경에서 'key-value' map 을 'key-value list'로 reduce 하는 과정
  • map task를 수행하는 워커들(M)과 reduce task를 수행하는 워커들(R)이 있음
  • 맵 후 리듀스 워커에 할당은 해시 기반으로
  • R에 따라 아웃풋(R마다 아웃풋 파일 하나)이 묶이는 것을 고려해 해시키를 조절 할 수 있다.
  • 마스터가 잡을 스케줄링하고 워커에 rpc 를 호출.
  • 대부분의 연산은 deterministic 해서 여러 번 수행되는 것은 문제가 아니다.
  • gfs는 세 쌍의 데이터를 저장한다. 마스터은 이 데이터가 있는 혹은 가까이 있는 노드에 태스크 할당.
  • 로드 밸런싱 등의 이유로 태스크가 워커보다 많은 게 좋음.
  • 맵퍼는 data 가 16-64MB로 쪼개지게 선택.
  • 리듀서는 또 너무 많으면 리듀서 수많큼 너무 많은 output file이 나오는 불편한 상황이 생김.
  • 네트워크나, 다른 머신 상황으로 인해 수행속도가 엄청나게 느린 staggler들이 가장 큰 성능 저하의 원인
  • 중간에 sort를 하는 이유는, 보기 편함 + direct access 가능
  • combiner function : 한 맵퍼에서 충분히 리듀스를 할 만큼 pair가 많이 나오면 네트워크 낭비하지 말고 맵퍼에서 하자.
  • 맵이나 리듀스가 안되는 잘못된 형식에 대한 데이터는, 마스터가 실패 시그널을 받고 거름.
  • 로컬에서 시퀀셜하게 돌리면서 디버깅 가능
  • couter: 해당 밸류가 얼마나 있는지를 count. Task 중복에도 제대로 카운팅 될 수 있도록 관리해줌.

  • 공지사항
    최근에 올라온 글
    최근에 달린 댓글
    Total
    Today
    Yesterday
    링크
    «   2025/01   »
    1 2 3 4
    5 6 7 8 9 10 11
    12 13 14 15 16 17 18
    19 20 21 22 23 24 25
    26 27 28 29 30 31
    글 보관함