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를 복사해 주자
스케줄러 통해서
'Computer S&E > 빅데이터' 카테고리의 다른 글
[빅데이터] 논문 리뷰 An Experimental Comparison of Pregel-like Graph Processing Systems (0) | 2022.11.09 |
---|---|
[Hadoop] Overview of Hadoop, MapReduce 하둡 - 맵리듀스 (0) | 2022.10.26 |
[Hadoop] 논문 리뷰 MapReduce: Simplified Data Processing on Large Clusters (0) | 2022.10.26 |
[Hadoop] hadoop에서의 straggler (0) | 2022.10.25 |
[Hadoop] MapReduce: Simplified Data Processing on Large Clusters 논문 (0) | 2022.10.07 |
댓글