MR은 데이터 처리를 위한 프로그래밍 “모델”이다. MR은 태생 자체가 병행성을 고려해서 설계되었고, 누구든지 충분한 장비만 있다면 대규모 데이터 분석을 할 수 있다.

2.1 기상 데이터셋

지구 전지역에서 매시간 데이터를 수집하는 기상 센서들은 대량의 로그 데이터를 모은다. 이 데이터는 semi-structured 데이터이면서 record-oriented하기 때문에 MR에 적합하다.

2.2 유닉스 도구를 데이터 분석하기

<aside> ❓ 연도별 전 세계 최고 기온은 얼마일까?

</aside>

일단 하둡을 사용하지 않고 이 문제를 해결해보자.

awk 명령어를 이용해서 압축된 연도별 파일을 반복해서 돌며, 연도를 출력하고, awk를 이용해서 각 파일을 처리한다. 즉, 최댓값은 모든 행이 처리된 후에 출력된다.

20세기 전체 데이터를 한 대로 처리해본 결과 42분이 걸렸다고 한다.

처리 속도를 높이려면, 프로그램의 각 부분을 병렬로 수행할 필요가 있다.

→ 이론적으로는 해당 머신의 모든 하드웨어 스레드를 이용해 연도별 파일을 서로 다른 프로세스에 할당해서 처리하면 된다. 그러나 몇 가지 문제점이 있다.

이렇듯, 병렬로 처리하는 것은 어찌보면 쉬워보일 수 있지만, 실제론 매우 복잡하다.

그래서, 하둡과 같은 프레임워크를 사용하는 것이다. ㅎㅎ

2.3 하둡으로 데이터 분석하기

하둡으로 이 문제를 해결하기 위해선, 우리의 요구사항을 MR 잡의 형태로 표현할 필요가 있다.

2.3.1 맵과 리듀스