Hadoop

Hadoop을 알아보자

서여랑 2023. 9. 17. 03:21

데이터 분야를 공부하다 보면 한번쯤 듣게 되고 공부하게 되는 하둡이다. 코끼리에 대한 유명한 일화는 스킵하고 본격적으로 하둡이 어떠한 것인지 심플하게 알아보도록 하자.

 

1. 하둡은 무엇인가?

 

하나의 성능 좋은 컴퓨터를 이용하여 데티러를 처리하는 대신 여러대의 컴퓨터를 하나로 묶어 대용량 데이터를 처리하는 기술 이다. 적당한 성능의 컴퓨터 여러대를 클러스터화 하고 거대한 데이터들을 클러스터에 병렬처리하여 속도를 높이는 것을 목적으로 하는 분산처리를 위한 오픈소스 프레임 워크이다. 

 

2. 하둡을 왜 사용하는가?

 

하둡은 위에서 말했든 하나의 성능 좋은 컴퓨터보다 여러대의 컴퓨터를 하나로 묶어 데이터를 처리하는 기술이다. 그렇다면 왜 구태여 여러대의 컴퓨터를 사용하여 데이터를 처리할까? 그 이유는 아주 쉬운 예를 들어 설명 할 수 있다. 실질적인 예를들어보면, 아주 아주 무거운 물건을 옮기기 위해서는 힘이 굉장히 센 사람 한명보다는 적당한 힘을 가진 사람여러명이 그 물건을 옮기는것이 한사람당 가해지는 부담이 적어지는 것과 같은 맥락이다.

오늘 날에는 개인이 생산해 내는 데이터의 량이 굉장히 많다. 하지만 그 데이터들 외에도 사물 인터넷의 일부인 기계에서 생산되는 데이터의 양이 훨씬 크다는 것이다. 이런 엄청난 데이터의 홍수 속에서 방대한량의 데이터들을 처리하기 위해서 개발된 것이 하둡이다.

 

3. 데이터 저장소

 

하둡은 어찌 되었든 데이터를 다루는 프레임 워크이다. 그렇다면 데이터를 다루는데에 있어서 문제가 되는 점과 그 해결 방법을 알아야 한다고 생각한다. 그렇다면 데이터를 다루는데 있어서 발생되는 문제점은 무엇인가? 바로 데이터를 읽고 쓰는 속도가 최대의 문제이다. 그동안 데이터를 저장할 수 있는 하드디스크의 용량은 굉장히 증가했지만 이 디스크에 데이터를 일곡 쓰는 속도는 그렇지 못했다. 

단일 디스크의 데이터를 읽는데 너무 많은 시간이 걸리고, 심지어 쓰는 것은 더 느리다. 시간을 줄이는 확실한 방법은 여러개의 디스크에서 동시에 데이터를 읽어들이는 방식이다. 데이터 전체를 100으로 보았을때 하나의 하드디스크에서 100개의 디스크를 전송 할때 1의 데이터를 1초마다 읽어들인다고 하면 총 100초가 걸리게 된다. 하지만 100개의 하드디스크에 1의 데이터가 1씩 들어있다고 하면 병렬 처리를 하면 못해도 2초안에 모든 데이터를 읽어들일 수 있다.

 

그렇다면 이 병렬처리 방식에 문제는 없을까? 

 

첫번째 문제는 하드웨어의 장애에 있다.

 하드웨어를 많이 사용 하면 할 수록 그 하드웨어의 고장 확률도 올라간다. 100의 데이터를 모두 읽어들이는 도중 수 개의 하드웨어가 고장나버리면 그 데이터는 손실되에 읽어들일 수 없게 된다. 이 문제를 해결하는 일반적인 방법은 백업을 해 두어 결손된 데이터를 다시 읽어들이는 것이다. 

이와 같은 방식으로작동하는 것이 RAID(*Redundant Array of Independent Disks(독립 디스크의 중복 배열))이다. 하둡의 파일 시스템인 HDFS는 RAID와는 조금 다른 방식을 사용한다고 한다. < 어떤 방식일까..?

 

두번째 문제는 분할된 데이터를 대부분의 분석 작업에서 어떤 식으로든 결합해야 한다는 것이다.

1씩 모은 100개의 데이터를 하나로 통합하든 몇개의 묶으로 결합하든 어떤식으로든 이 데이터를 활용하기 위해서는 데이터를 합쳐서 사용해야 할 것이다. 분산 시스템들은 다중 데이터를 병합하는 기능을 제공하지만 정합성(*어떤 데이터들이 값이 서로 일치하는 상태를 의미)을 지키는 것은 매우 어려운 도전과제라고 한다.  맵리듀스(*대용량의 데이터를 분산/병렬 컴퓨팅 환경에서 처리하기 위해 제작된 데이터 처리 모델)는 디스크에서 데이터를 읽고 쓰는 문제를 키-값 쌍의 계산으로 변환한 추상화된 프로그래밍 모델을 제공한다.

 

4. 그래서?

하둡은 안정적이고 확장성이 높은 저장 및 분석 플랫폼을 제공한다. 그리고 하둡은 범용 하드웨어에서 실행되고 오픈소스이기 때문에 매우 저렴한 장점이 있다. 

 

 

-하둡에 대해 기본적으로 알고 가야 할 지식을 정리해 보았다. 하지만 아직 맵리듀스가 정확히 어떤것이고, RAID가 무엇이고 HDFS는 또 무엇이고 모르는 것들이 너무 많다. 그저 이제 방대한 량의 데이터를 병렬처리 하는 이유. 그리고 그 방식중 어떤것이 유효한지. 이정도만 일단 기억해두고 이후에 아직 이해하지 못한 맵리듀스나 RAID등 궁금점을 간단하게라도 짚고 넘어가는 것이 이후 하둡을 공부하기 위해 유리 할 듯 하다. 

'Hadoop' 카테고리의 다른 글

HDFS 라는 것도 알아보자(2)  (0) 2023.11.11
HDFS 라는 것도 알아보자  (0) 2023.09.19
RAID ?? 이게 뭘까  (0) 2023.09.18