본문 바로가기
Computer S&E/빅데이터

[Hadoop] MapReduce Application

by 와플킴 2022. 10. 26.
728x90

java

final → 뒤에 어떤 값이 들어와도 상수 취급

Job이 잘 돌아가는지 확인을 먼저 하고 cluster에 돌리는게 낫다

cluster에 바로 돌리는건 heavy하니까

local로 먼저 test → configuration의 이유

-conf 옵션 주기 위해서 configuration, generic option

Combiner

: local reducer

split 마다 mapper가 만든 결과 값을 합쳐서 reducer에 전달, local reducer 개념

reducer가 할 일을 미리한다, shuffle 할 data size가 작아진다, mapper 바로 후에 실행

HDFS -> mapper -> disk -> reducer -> HDFS

MapReduce Workflows

Top wordcount

상위 10개 word만 count

hadoop은 word count 먼저 수행하고 top-10 따로 뽑음

복잡도를 너무 한 작업에 주지 말고 차라리 심플하게 두 개 돌리는 게 나을 수도 있다

Failures

반응형
  • Task failure

failure 발생하면 application master에 보고, task를 failure 처리

오래 progress 할당을 못 받고 있어서 task가 죽었다 싶으면 reschedule

  • Application master failure

각 작업 당 하나씩 생성되는 관리자

resource manager에게 주기적으로 heartbeat을 보내는데 안 보내면

client가 봤을 때 안 돌아가는거 같으면 resource manager에 요청해서 새로운 application master

  • Node manager failure

node manager가 10분동안 heartbeat 안 주면 resource manager가 죽은거 알아 챔

node manager의 역할: 실제 task가 돌아갈 수도 있고 application master에도 node manager 할당

여러 번 실패하면 그 node manager 블랙 리스트에 올려서 다음에 다시 안 돌려줌

  • Resource manager failure

SPOF: 전체 구조에서 한 가지 구조만 동작하지 않아도 모든 작업 마비 name node (secondary name node 있음), resource manager

HA: 고가용성, 프로그램에 문제가 생겼을 때 얼마나 빠르게 다시 복구시킬 수 있는지

Shuffle: map의 output을 reducer의 input으로, sort 되어 있어야 함

spill: memory의 임계치만큼 다 쓰게 되면 disk에 써 주는 과정

background thread가 이 과정을 수행하는데 이때 가장 먼저 partition을 한다

mapper에서 reducer로 보낼 때 같은 key 값의 value들이 모여서 같은 reducer로 보내져야 하기 때문

range sort: 분기 별로 뭔가 계산해야 한다면

hash partition으로 키를 고르게 분산하는게 좋을까

range partition으로 짜서 분기별로 묶어주는 게 좋을까

→ range로 계산하는게 좋다

reduce에는 copy, sort, reduce phases가 있다

Q sort, merge 과정이 전체 1/2 만큼 진행되었으면 reduce task는 얼마만큼 진행된걸까

각 1/2

map, reduce - child process / application master - parent process

progress, status에 관해서 parent process와 communicate

Task Execution

speculative execution of tasks

한 작업이 끝나지 않고 계속 독점하고 있으면 → 감지하거나 고치려고 하지 않는다

좀 느리다 싶으면 다른 노드들을 할당해서 같이 띄움

얘 좀 느리면 다른 노드에 이 task를 복사해 주자

스케줄러 통해서

728x90

댓글