[하둡 완벽 가이드] 1. 하둡과의 만남

jake·2023년 2월 27일
0

1.1 데이터!

오늘날 우리는 데이터 시대에 살고 있다.
수많은 곳에서 매일 엄청난 데이터가 만들어지고 있고 많은 사람들이 이것을 처리하기 위해 노력한다. 이러한 현상이 우리에게 의미가 있을까? 있다!

수많은 데이터를 수집해 데이터셋을 공개하면 사람들은 그것을 다운받아 정보를 공유하고 새로운 프로젝트를 시작할 수 있다. 일상생활에서 화질 좋은 스마트폰의 카메라로 사진을 찍으면 갤러리에 필요한 용량은 늘어날 것이고 이것 또한 하나의 문제점이다.

여기서 좋은 점은 필요한 데이터는 주변에 널려 있다는 것, 나쁜 점은 그것을 저장하고 분석하는 것은 어렵다는 것이다.

1.2 데이터 저장소와 분석

왜 이런 문제가 생긴 것일까?
이유는 단순하다. 지난 수년간 데이터를 저장하는 하드디스크의 용량은 엄청나게 증가했지만, 데이터를 읽는 속도는 그에 미치지 못했다.

단일 디스크의 데이터를 읽고 쓰는 것은 너무 느리다. 이 문제를 해결하는 방법은 여러 개의 디스크에서 동시에 데이터를 읽는 것이다. 100개의 디스크가 있고 각 디스크에는 100분의 1만큼 데이터가 있다고 해보자. 여러개의 디스크를 병렬로 작업하면 이전보다 빠르게 데이터를 읽을 수 있다.

그러나 고려해야 할 몇몇 문제가 있다.
첫 번째 문제는 하드웨어 장애로 많은 하드웨어를 사용할수록 장애가 발생할 확률도 높아진다. 두 번째 문제는 분할된 데이터를 분석 작업에서 어떻게든 결합해야 한다는 것이다. 즉 하나의 디스크에서 읽은 데이터를 나머지 99개의 데이터에서 읽은 데이터와 결합해야 한다.

첫 번째 문제를 해결하기 위해서는 장애가 일어났을 때를 대비하여 여러 곳에 데이터의 복사본을 보관하는 RAID방식이 필요하다. 두 번째 문제는 데이터 병합을 지원하면서 정합성을 지키면 된다.

이러한 문제를 해결해주는 것이 하둡이다. 하둡은 안정적이고 확장성이 높은 저장 및 분석 플랫폼이다. 또한 MapReduce를 사용하고 여러 개의 컴퓨터를 마치 하나의 컴퓨터처럼 묶어 사용하게 해주는 기술이다.

1.3 전체 데이터에 질의하기

맵리듀스는 디스크에서 데이터를 읽고 쓰는 문제를 키-값 쌍으로 변환하여 출력한다. 맵리듀스의 접근법은 브루트 포스로 이 방법의 전제는 한 번의 쿼리로 전체나 상당한 규모의 데이터셋을 처리하는 것이다.

1.4 일괄 처리를 넘어서

맵리듀스의 강점은 기본적으로 일괄 처리 시스템이라는 것이고, 대화형 분석에는 적합하지 않다.

대화형 분석이란 상대적으로 적은 양의 데이터를 추출하고 데이터 변경이 잦은 데이터세트를 의미한다. 대화형 분석에는 RDBMS가 적합하다. 맵리듀스는 데이터를 한 번 쓰고 여러번 읽는 애플리케이션에 적합하다.

하둡은 맨 처음에 일괄 처리를 위해 만들어졌지만, 진화를 거듭해 HDFS와 맵리듀스뿐만이 아닌 수많은 에코시스템 프로젝트를 지칭하는 말로 사용된다. 하둡 기반의 다른 처리 프레임워크가 계속 생겨나지만 여전히 맵리듀스는 일괄 처리 영역을 담당하고 있다.

1.5 다른 시스템과의 비교

왜 여러 개의 디스크를 가진 데이터베이스를 이용해 대규모 분석을 할 수 없을까? 왜 하둡이 필요할까?

질문에 대한 답은 '탐색 시간은 전송 속도보다 발전이 더디다'는 디스크 드라이브의 특성이다. 탐색은 디스크의 헤더를 디스크의 특정 위치로 이동시키는 조작이고 전송 속도는 디스크의 대역폭과 관련이 있다.

만약 데이터 접근 패턴이 탐색 위주라면 데이터 접근 패턴이 전송 위주인 스트리밍보다 시간이 더 오래 걸릴 것이다.

0개의 댓글