하둡 Hadoop

[Hadoop] 하둡 에코시스템(Hadoop Ecosystem)과 주요 컴포넌트

sseozytank 2024. 2. 13.

지난 포스팅에서 하둡에 대해 이해했다. 그렇다면 늘 같이 다니는 하둡 에코시스템 너는 뭐냐!? 

하둡 에코시스템? (Hadoop Ecosystem) 

하둡은 오픈소스라했다. 이에 따라 하둡을 좀 더 편하게, 그리고 단점은 수정하여 더 잘사용할 수 있도록 여러 서브프로젝트들이 생겨났고, 그 서브 프로젝트의 모임을 하둡 에코 시스템이라고 한다. 사실상 '하둡'이라 하면 단일 솔루션을 얘기하는 것이 아니라 , 하둡이라는 거대한 에코시스템을 일컫는다고 생각하면 된다. 

  • 즉, 코어 프로젝트는 HDFS, MapReduce, YARN
  • 서브 프로젝트는 아래 그 외에 컴포넌트들 

 

그렇다면, 그 중에서도 주요 컴포넌트들에 대해 알아보자. 

이번 포스팅에서는 하둡 에코시스템에 이런 것들이있구나 정도에서 끝내고 내가 실무에서 사용할 프레임워크에 대해서만 심층 포스팅을 이어나갈 예정이다. 

 

데이터 수집 기술 

플룸 Flume 

  • 로그 데이터와 같은 스트리밍 데이터를 하둡 클러스터로 전송하기 위한 데이터 수집 도구 
  • 분산된 서버에 에이전트가 설치되고, 각 에이전트가 데이터를 전달받는 구조 

척와 Chukwa 

  • 분산 환경에서 생성되는 데이터를 HDFS에 저장하는 역할
  • 분산된 서버에서 agent 실행 -> collector가 agent에서 데이터를 받아 HDFS에 저장 -> MapReduce가 처리

카프카 Kafka

  • 실시간 데이터, 스트림 데이터를 관리하기 위한 분산 메시징 시스템 (링크드인에서 개발) 
  • 데이터 파이프 라인을 구축할 때 사용, 데이터 스트림을 실시간으로 관리 및 처리 

 

데이터 저장 기술

H베이스 HBase

  • HDFS 기반의 컬럼 기반 데이터베이스
  • 실시간 랜덤 조회 및 업데이트가 가능하며, 각 프로세스는 개인의 데이터를 비동기적으로 업데이트 가능
  • 단, 맵 리듀스는 일괄 처리 방식으로 수행됨

Kudu

  • 컬럼 기반 스토리지로 특정 컬럼에 대한 데이터 읽기를 고속화 할 수 있음

 

데이터 처리 기술

피그 Pig 

  • 대규모 데이터 처리를 위한 고수준 스크립트 언어 플랫폼
  • Pig Latin을 사용하여 SQL과 유사한 구문으로 데이터 처리 작업을 수행 

 

스파크 Spark 

  • 인메모리 기반의 범용 데이터 처리 플랫폼 
  • 배치 처리, 머신러닝, SQL질의 처리, 스트리밍 데이터 처리, 그래프 라이브러리 처리와 같은 다양한 작업을 수용할 수 있도록 설계 

하이브 Hive 

  • 하둡 기반의 데이터웨어하우징용 솔루션, HiveSQL 쿼리 언어 제공 
  • HiveSQL은 내부적으로 맵리듀스 잡으로 변환되어 실행 

타조 Tajo

  • 맵리듀스 엔진이아닌 자체 분산 처리 엔진을 사용하며, SQL을 지원 
  • HDFS,AWS S3, HBase, DBMS등에 저장된 데이터 표준 SQL로 조회할 수 있고 이기종 저장소간의 데이터 조인 처리 가능 

 

워크플로우 관리

에어플로우 Airflow 

  • 에어비앤비에서 개발, 데이터 흐름의 시각화, 스케줄링, 모니터링이 가능하며 하이브, 프레스토, DBMS 엔진과 결합하여 사용 가능 

아즈카반 Azkaban

  • 링크드인에서 개발한 워크플로우 플랫폼. 자사의 복잡한 데이터 파이프라인을 관리하기 위해 개발 
  • 워크플로우 스케줄러, 시각화된 절차, 인증 및 권한 관리, 작업 모니터링 및 알람 등 다양한 기능 제공 

 

데이터 시각화 

제플린 Zepplin 

  • 웹 기반의 분석 도구, 분석 결과를 즉시 표,그래프로 표현하는 시각화까지 지원 
  • 노트북 기능 지원, 스파크, 하이브, 타조, 엘라스틱 서치등 다양한 분석 플랫폼과 연동 가능 

 

데이터 직렬화

Avro

  • RPC(Remote Procedure Call)과 데이터 직렬화를 지원하는 프레임워크
  • JSON을 이용해 데이터 형식과 프로토콜을 정의하며, 작고 빠른 바이너리 포맷으로 데이터 직렬화 

Thirft

  • 서로 다른 언어로 개발된 모듈들의 통합을 지원하는 RPC 프레임워크 

 

하둡 에코시스템의 주요 컴포넌트들은 이 정도이다. 이 중에서 내가 앞으로 심도있게 다를 에코시스템은 Spark랑 Zepplin이 될 것이다. 관련 포스팅을 할 때마다 본 문서에 링크도 같이 연결해두도록 하겠다. 

 


*참고자료

https://pythontoomuchinformation.tistory.com/474

https://velog.io/@tett_77/%ED%95%98%EB%91%A1-%EC%97%90%EC%BD%94%EC%8B%9C%EC%8A%A4%ED%85%9C-Hadoop-ecosystem

https://hoing.io/archives/21453

댓글