하둡(Hadoop)이란?
하나의 성능 좋은 컴퓨터를 이용하여 데이터를 처리하는 대신 낮은 성능의 컴퓨터 여러 대를 클러스터화 해 큰 크기의 데이터를 클러스터에서 병렬로 동시에 처리하여 처리속도를 높이는 것을 목적으로 한 분산처리 오픈소스 프레임워크
Hadoop의 필요성
온라인 서비스와 온라인 데이터 처리 기술이 발전하면서 데이터의 양과 종류가 다양해졌다.
정형 데이터의 경우 기존에 있던 RDBMS에 저장하면 되지만 웹 로그 등의 비정형 데이터를 RDBMS에 저장하기에는 데이터의 크기도 너무 크고 RDBMS의 복잡하고 상세한 기능이 필요하지도 않았다.
또한 RDBMS는 대용량, 고스펙의 장비에 운영하는데, 자주 사용하지 않는 데이터를 무작정 RDBMS를 늘려서 보관하는 것은 비용적인 면에서도 너무 낭비가 심하다.
하둡은 값비싼 장비가 아닌 x86 리눅스 서버라면 어떤 수준의 장비든지 하둡을 설치해서 운용할 수 있다. 또한 데이터 용량이 커지면 단순히 노드를 늘려서 대응할 수 있고, 이것을 재설치나 재구성 없이 할 수 있다는 점도 대용량을 위한 큰 장점이다.
하둡은 데이터의 복제본을 저장하기 때문에 유실이나 장애에도 데이터 복구를 할 수 있다는 장점 또한 갖고 있다.
여러대의 서버에 데이터가 저장되어있기 때문에, 프로세싱 또한 데이터가 분산된 서버에서 동시에 처리할 수 있다.
이런 분산 컴퓨팅을 통해서 기존의 데이터 처리 방법보다 큰 성능 향상을 얻을 수 있다.
Hadoop의 특징
하둡의 상세 기능은 많지만 고수준(High-Level)에서 꼽을 수 있는 주요 특징은 다음과 같다.
1. 확장성 (Scalable)
- 대용량 데이터 처리 가능
- 여러 대의 서버(클러스터)를 이용해 데이터를 분산 저장하고 처리할 수 있음
2. 경제성 (Economical)
- 저렴한 일반 하드웨어를 활용 가능
- 수천 개의 노드로 구성된 클러스터에서도 원할하게 작동.
3. 효율성 (Efficient)
- 데이터를 분산 저장하고 병렬 처리 가능
- 데이터가 저장된 노드에서 직접 연산을 수행하여 네트워크 비용 절감 및 속도 향상
4. 신뢰성 (Reliable)
- 데이터 복제 및 장애 복구 기능 제공
- 노드 장애 시 자동으로 작읍을 재배치하여 안정적인 운영 가능
Hadoop의 동작 흐름
데이터가 들어오면, 커다란 데이터를 쪼개고 그 데이터를 분리해서 저장한다.
말하자면 하둡은 커다란 도서관과 같은 느낌인 것이다.
박스채로 들어온 여러권의 책들을 책장(데이터 노드)에 나누어 보관(HDFS) 하고 사서가 이를 기억(네임 노드)한다.
또한 인기 있는 책은 여러 권을 배치(Replication)하여 유사시 책 한권이 없더라도 같은 내용의 다른 책으로 대체(데이터 유실을 방지)할 수도 있다.
이처럼 하둡은 데이터를 효과적으로 분산하고 이를 저장하며 검색의 용이함과 데이터의 안정성도 향상시킬 수 있는 서비스라고 볼 수 있다.
Hadoop 생태계
1. Hadoop V2로의 진화
Hadoop v1은 단순히 분산 파일 관리 시스템인 HDFS와 분산 데이터 처리를 위한 MapReduce 프레임워크만 제공했다.
MapReduce는 데이터가 위치한 곳에서 연산을 처리할 수 있기 때문에 강력했지만, 사용이 불편했다.
2. Yarn의 역할
Yarn의 도입으로 기본 프레임워크인 MapReuce 뿐만 아니라, Tez, Flink, Spark 등 분산 처리를 위한 프레임워크나 도구들이 HDFS와 HDFS가 설치된 컴퓨팅 자원을 더 쉽게 이용할 수 있게 되었다. 이것은 HDFS의 활용도를 높임과 동시에 강력한 생테계를 구축할 수 있도록 만들었다.
3. Winner Takes All
대용량 데이터를 다루기 위해서는 기술적인 난이도가 높을 뿐만 아니라, 다양한 컴퓨팅 하드웨어, 소프트웨어와의 호환성 등으로 개발 공수가 크다. 또한 데이터가 많은 만큼 버그로 인한 사이드 이펙트 또한 커서, 안정적으로 사용하기 위해서는 성숙에 드는 시간이 필요하다. 하둡 에코시스템은 HDFS와 Yarn을 기반으로 이 성숙의 과정을 거쳐오며 발전한 에코 시스템인 만큼, 대용량 시스템에서 이 에코시스템을 대체할만한 대체자가 나오기 쉽지 않다. 이로 인해 새로운 대용량 분산시스템이 등잘할 때는 새로운 시스템을 만들더라도 하둡 생태계를 지원하는 방향으로 기술 개발이 이루어지고 있다.
'Develop > Data Engineering' 카테고리의 다른 글
웹 크롤링에 대해 알아보자 (0) | 2025.04.16 |
---|---|
HDFS 개요 (0) | 2025.03.23 |