Hadoop이란 무엇인가?
Hadoop(High-Availability Distributed Object-Oriented Platform)
Hadoop은 대용량 데이터를 처리하기 위한 오픈소스 프레임워크로, 현재 많은 기업과 조직에서 대용량 데이터 처리에 활용되고 있습니다. 이번 글에서는 Hadoop이 무엇인지 간단하게 알아보겠습니다.
◈ Hadoop 소개
◇ 등장 배경
Hadoop은 대용량 데이터의 증가와 기존 데이터 처리 방법의 한계로 개발되었습니다. 인터넷과 디지털 기술의 발전으로 인해 기업과 조직에서 생성되는 데이터의 양이 급증했으며, 이를 효율적으로 처리하기 위한 방법이 필요했습니다. 그리고 기존에는 단일 서버에서 데이터 처리를 수행하는 방식이 주로 사용되었으며 대용량 데이터를 한 대의 서버에서 처리하는 경우, 처리 속도가 느려지고 데이터의 안정성과 내고장성에 한계가 있었습니다.
◇ 하둡(Hadoop)이란?
Hadoop이란 대규모 데이터를 처리하기 위한 오픈소스 프레임워크입니다. Hadoop은 분산 파일 시스템인 HDFS(Hadoop Distributed Fils System)와 분산 데이터 처리 모델인 MapReduce를 중심으로 구성되어 있으며 대용량 데이터의 저장, 처리, 분석을 가능하게 합니다.
◇ 하둡의 주요 구성요소
하둡은 4개의 주요 구성요소로 구성됩니다.
1. HDFS (Hadoop Distributed File System): 대용량 데이터를 저장하고 처리하기 위한 분산 파일 시스템입니다. 데이터를 블록으로 나누어 여러 노드에 저장하고, 데이터의 안정성과 내구성을 보장합니다.
2. MapReduce: 대규모 데이터 처리를 위한 분산 프로그래밍 모델입니다. Map 함수와 Reduce 함수를 사용하여 데이터 처리 작업을 분산하고 병렬로 처리합니다.
3. YARN (Yet Another Resource Negotiator): 하둡 클러스터의 리소스 관리와 작업 스케줄링을 담당하는 컴포넌트입니다. 클러스터의 자원을 효율적으로 할당하고 작업을 실행하는 역할을 수행합니다.
4. Hadoop Common: 하둡의 다른 구성 요소들을 지원하기 위한 공통 라이브러리와 유틸리티들을 제공합니다. 네트워크 통신, 보안, 로깅 등 다양한 기능을 포함합니다.
◈ Hadoop Ecosystem(하둡 생태계)
Hadoop의 코어 프로젝트는 HDFS와 MapRedue지만, 그 외에도 수집, 분석 등 다양한 작업을 하는 서브 프로젝트가 존재합니다. Hadoop Ecosystem은 Hadoop 코어 프로젝트와 서브 프로젝트의 모임입니다. 몇 가지 서브 프로젝트들에 대해 간단히 알아보겠습니다.
◇ 분산환경 관리자
Zookeeper
주키퍼는 분산 환경에서 조정과 동기화를 담당하는 분산 서비스입니다. 하나의 서버에만 서비스가 집중되지 않게 분산시켜 주며, 하나의 서버에서 처리한 결과를 다른 서버들과도 동기화를 시켜줌으로 데이터의 안정성을 보장시켜 줍니다.
◇ 워크플로우 관리
Oozie
우지는 하둡의 작업을 관리하는 워크플로우 및 코디네이터 시스템입니다. Java servlet(자바 서블릿) 컨테이너에서 실행되는 자바 웹 어플리케이션 서버로, MapReduce 작업이나 Pig 작업 같은 특화된 액션들로 구성된 워크플로우를 제어합니다.
Airflow
에어플로우는 데이터 공학 파이프라인을 위한 오픈 소스 워크플로우 관리 플랫폼입니다. 에어플로우는 다양한 기능을 제공하여 데이터 처리 파이프라인을 자동화하고 관리하는데 도움을 줍니다.
◇ 데이터 수집/저장
Flume
플룸은 대규모 데이터 수집을 위한 분산 시스템입니다. 분산된 서버에 에이전트가 설치되고 각 에이전트가 데이터를 전달받는 구조로 되어 있습니다.
Kafka
카프카란 고성능 분산 이벤트 스트리밍 플랫폼으로, 실시간으로 데이터 stream(흐름)을 관리하기 위한 분산 시스템입니다. 카프카는 중앙에서 모든 이벤트 또는 데이터 흐름을 관리하여 서비스들이 동시에 데이터를 읽고 처리할 수 있도록 지원 합니다.
Hbase
Hbase는 HDFS의 컬럼 기반 데이터베이스로 구조화된 대용량의 데이터를 처리하는데 사용됩니다. 열지향 데이터 모델로 정형 및 비정형 데이터를 빠르게 저장하고 조회하기 위한 NoSQL이다.
◇ 데이터 처리
Hive
하둡 기반의 데이터웨어하우징용 솔루션으로, 대규모 데이터 집합을 처리하고 분석하기 위한 SQL 기반의 쿼리 및 데이터 처리 도구입니다. 내부적으로는 SQL 쿼리를 Hadoop Cluster에서 실행 가능한 MapReduce 작업으로 변환하여 처리합니다.
Impala
임팔라는 하둡 기반의 실시간 SQL 질의 시스템으로, MapReduce를 사용하지 않고 자체 개발한 엔진을 사용하여 데이터를 처리합니다. Hive보다 빠른 성능을 보여줍니다.
Spark
스파크는 빅데이터 처리를 위한 오픈 소스 고속 분산처리 엔진입니다. 통합 컴퓨팅 엔진이며 클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합이다. 스파크는 기존의 HDFS의 한계로 등장하며 인메모리 방식으로 데이터를 처리하여 HDFS보다 빠른 연산 속도를 제공합니다. 이를 통해 대규모 데이터 처리를 실시간으로 수행할 수 있게 합니다.
◈ Hadoop 장단점
◇ 장점
- 오픈소스로 라이선스에 대한 비용 부담이 적다.
- 시스템을 중단하지 않고, 장비의 추가가 용이(Scale Out)하다.
- 일부 장비에 장애가 발생하더라도 전체 시스템 사용성에 영향이 적음(Falut Tolerance)
- 저렴한 구축 비용과 비용대비 빠른 데이터 처리
- 오프라인 배치 프로세싱에 최적화
◇ 단점
- HDFS에 저장된 데이터를 변경 불가
- 실시간 데이터 분석 같이 신속하게 처리해야 하는 작업 부적합
- 너무 많은 버전과 부실한 서포트
- 설정의 어려움
하둡은 빅데이터 처리를 위한 핵심 도구 중 하나이며, 많은 기업과 조직에서 사용되고 있습니다. 이번 글에서는 Hadoop에 대해 간단하게 알아보았으며, 다음 글에서는 조금 더 자세한 내용을 다뤄보도록 하겠습니다.
'Big Data' 카테고리의 다른 글
Apache Kafka(카프카) 기본개념 (2) | 2023.06.09 |
---|---|
Colab + Spark 활용한 간단한 예제 (0) | 2023.06.05 |
Apache Spark란? (0) | 2023.06.02 |
Hadoop YARN이란 무엇인가? (0) | 2023.05.27 |
HDFS와 MapReduce에 대해 (0) | 2023.05.25 |
댓글