본문 바로가기
3장 데이터 엔지니어링/Hadoop

[Hadoop] 01 하둡과 에코시스템

2023. 11. 15.

1. 용어 정리

  • 하둡(Hadoop): 대규모 데이터 세트를 분산 처리하기 위한 오픈 소스 프레임워크
  • HDFS(Hadoop Distributed File System): 대용량 데이터를 여러 노드에 분산하여 저장하는 파일 시스템
  • 맵리듀스(MapReduce): 대규모 데이터 세트를 여러 노드에 분산시켜 처리할 수 있도록 하는 프로그래밍 모델 및 프레임워크

2. 하둡의 필요성

빅데이터가 주변에 널려 있다는 것은 좋은 소식이나, 나쁜 소식은 그것을 저장하고 분석하는 것이 매우 어렵다는 것이다.

빅데이터를 저장하고 분석하기 위해 단일 디스크를 사용하면 데이터를 읽는 데 너무 많은 시간이 소요되며, 데이터를 쓰는 것은 더 느리다. 시간을 단축하는 확실한 방법은 여러 디스크에서 동시에 데이터를 읽는 것이다. 그러나 여러 개의 디스크에 데이터를 병렬로 쓰거나 읽으려면 몇 가지 문제를 고려해야 한다.

첫 번째 문제는 하드웨어 장애다. 많은 하드웨어를 사용할수록 장애 발생 확률도 높아진다. 데이터의 손실을 막기 위한 일반적인 방법은 데이터를 여러 곳에 복제하는 것이다. 이와 같은 방식으로 작동하는 것이 바로 RAID다.

두 번째 문제는 분할된 데이터를 대부분의 분석 작업에서 어떤 식으로든 결합해야 한다는 것이다. 많은 분산 시스템이 다중 출처의 데이터를 병합하는 기능을 제공하지만, 정합성을 유지하는 것은 매우 어려운 일이다. 맵리듀스는 디스크에서 데이터를 읽고 쓰는 문제를 키-값 쌍의 계산으로 변환한 추상화된 프로그래밍 모델을 제공하며 안정성을 내장하고 있다.

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

3. 하둡의 에코시스템

맵리듀스의 접근법은 무차별 대입(brute-force) 방식으로 보인다. 그러나 맵리듀스는 일괄 질의 처리기로, 전체 데이터셋을 대상으로 비정형(ad hoc) 쿼리를 수행하고 합리적인 시간 내에 그 결과를 보여주는 능력을 갖추고 있다.

하둡의 진화를 살펴보면 최초에는 일괄 처리를 위해 만들어졌지만, 현재는 이를 벗어나 발전하고 있다. 실제로 ‘하둡’이란 단어는 HDFS와 맵리듀스만이 아닌 수많은 에코시스템 프로젝트를 지칭하는 말로 사용되기도 한다. 하둡 에코시스템은 분산 컴퓨팅과 대규모 처리를 위한 기반시설이다. 에코시스템의 대부분은 오픈 소스 소프트웨어 프로젝트 커뮤니티의 지원을 받으며 아파치 소프트웨어 재단(Apache Software Foundation)에서 관리하고 있다.

온라인 접근을 지원하는 첫 번째 에코시스템인 HBase는 HDFS를 기본 저장소로 하는 키-값 저장소다. HBase는 개별 행에 대한 온라인 읽기/쓰기와 산적한 데이터를 읽고 쓰는 일괄 처리를 둘 다 지원하기 때문에 애플리케이션을 구축하는 데 좋은 솔루션이 될 수 있다.

YARN(Yet Another Resource Negotiator)은 클러스터 자원 관리 시스템으로, 맵리듀스뿐만 아니라 어떤 분산 프로그램도 하둡 클러스터에 저장된 데이터를 처리할 수 있게 해준다.

그 외에 다음과 같은 에코시스템이 있다.

  • 대화형 SQL(Impala, Hive)
  • 반복 처리(Spark)
  • 스트림 처리(Storm, Spark Streaming, Samza)
  • 검색(Solr)
반응형

댓글