하둡 에코시스템 (Hadoop ecosystem)

이상해씨·2023년 9월 8일
0

Hadoop

목록 보기
2/3

하둡 에코시스템 (Hadoop ecosystem)

  • Apache Hadoop 을 구성하는 도구들을 의미. 프레임워크 또는 플랫폼.
  • 분산 데이터 저장 관리, 처리가 주 기능.
  • 그외의 워크플로우, 데이터 분석, 수집, 직렬화 등의 기능 제공
  • 오픈 소스
  • 대표적으로 HDFS, Hive, Pig, YARN, MapReduce, Spark, HBase , Oozie, Sqoop, Zookeeper 등이 있음.

    하둡 에코시스템

(이미지 출처 - https://dzone.com/articles/hadoop-ecosystem-hadoop-tools-for-crunching-big-da)


구성요소

하둡 에코시스템

(이미지출처 - 시작하세요! 하둡 프로그래밍(위키북스))

1. Hadoop Framework

1-1) Zookepper (분산 코디네이터)

  • 분산환경에서 서버들 간의 상호조정
  • 분산 시스템의 구성 관리와 동기화 지원
  • 원활한 통신과 서버간의 충돌을 조정해주는 역할
  • 중앙 집중식 서비스 환경을 통합적으로 관리
  • 분산 동기화로, 하나의 서버에만 서비스가 집중되지 않도록 서비스 분산 시킴
  • activate 서버(운영서버)에 문제가 생겼을 경우, 대기 중인 서버를 운영서버로 바꿔 서비스 중지를 대처
  • 한 서버에거 처리 한 결과를 나머지 서버들에도 동기화 (데이터 안정성)

1-2) Oozie (위크플로우 및 코디네이터 시스템)

  • 하둡 작업을 관리하는 워크플로우 및 코디네이션 시스템 (작업 스케쥴링을 관리)
  • 복잡한 데이터 처리 과정 자동화
  • Java Web application server, Java servlet container에서 실행됨
  • MapReduce 작업과 Pig 작업과 같은 워크플로우 제어

1-3) Avro(데이터직렬화)

  • PRC(Remote Procedure Call)과 직렬화 지원 Framework
  • JSON 데이터형식과 프로토콜 정의
  • binary 로 데이터 직렬화. 작고 빠름

2. 분산 리소스 관리

2-1) YARN ⭐

  • 작업 스케쥴링, 클러스터 리소스 관리를 위한 Framework
  • YARN에서 MapReduce, Hive,Impala,Spark 와 같은 application을 실행

2-2) Mesos (클라우드 환경 리소스 관리)

  • Linux 커널과 같은 원칙 사용
  • API(Hadoop, Spark, Kalfa, Elasticsearch) 제공

2-3) HCatalog

  • Hadoop으로 생성한 데이터를 위한 테이블 및 스토리지 관리 서비스
  • 하둡 에코 시스템의 상호 운용성 향상한다는 장점

3. 데이터 저장

3-1) HBase

  • HDF의 칼럼 기반 데이터 베이스
  • 대용량 NoSQL 데이터베이스
  • 실시간 랜덤 조회 및 업데이트 (데이터를 저장하고 실시간으로 읽고 쓸 수 있음)
  • 개개인의 데이터를 비동기적으로 업데이트 (동시성X, Mapreduce는 일괄적으로 처리)
  • Bigtable 기능 제공

3-2) HDFS (Hadoop Distributed File System)⭐

  • 분산 파일 데이터 저장
  • 하둡에서 저장소
  • 대용량 데이터를 저장
  • 데이터를 여러 블록으로 나누어 여러 노드에 복제
  • 많은 양의 데이터를 효과적으로 저장 및 관리
  • 네트워크에 연결된 기기에 데이터를 저장해주는 분산형 파일 시스템
  • 높은 엑세스, 높은 처리량

참고 포스팅 - HDFS(Hadoop Distributed File System)

3-3) Kudu

  • 칼럼 기반 스토리지
  • 속성 기반 스토리지
  • 빠른 분석

3-4) Tajo

  • 고려대에서 개발한 DW 시스템
  • 데이터 저장소는 HDFS 사용, SQL으로 실시간 데이터 조회 가능
  • Hive보다 2~3배 빠름. Impala와 비슷한 속도. - Impalasms cloudera hadoop을 써야하지만, Tajo는 사용할 수 있는 솔루션이 자유로움

4. 데이터 수집

4-1) Chukwa

  • 분산 환경에서 생성되는 데이터를 HDFS에 저장하는 역할
  • 분산된 서버에서 agent 실행 -> collector가 agent에서 데이터를 받아 HDFS에 저장 -> MapReduce가 처리
  • 대규모 분산 시스템 모니터링 및 툴킷 포함
  • HDFS 와 Mapreduce에 구축됨

4-2) Flume

  • 로그 데이터와 같은 스트리밍 데이터를 하둡 클러스터로 전송하기 위한 데이터 수집 도구
  • 분산된 서버에 agent가 flume 실행 -> collector가 agent에서 데이터를 받음
  • chukwa와 달리, 데이터 전체의 흐름을 관리하는 Master server가 있어 데이터 수집처, 전송방식, 저장위치를 동적으로 변경할 수 있음
  • 많은 양의 데이터를 수집, 이동, 집계하는 서비스

4-3) kafka ⭐

  • 대용량 실시간 데이터 스트림을 처리 및 저장하는 분산 스트리밍 오픈소스 플랫폼
  • 데이터 파이프 라인을 구축할 때 사용
  • 데이터 스트림(흐름)을 실시간으로 관리 및 처리
  • 실시간으로 대용량 로그처리에 특화
  • 데이터를 유실 없이 안전하게 전달
  • 고장방지와 안정적인 아키텍처, 빠른 속도로 데이터 처리

5. 데이터 전송

5-1) sqoop

  • 대용량 데이터 전송
  • 관계형 데이터베이스와 하둡 간의 데이터 이전 및 연동을 도움
  • 대용량 데이터를 저장소(RDBMS, DW, NoSQL, HDFS)에 신속하게 전송
  • Oracle, MySQL, PostgreSQL 지원

5-2) Hiho

  • 대용량 데이터 전송
  • git에 공개됨
  • hadoop에서 데이터를 가져오기 위한 SQL 지정, JDBC 인터페이스 지원

6. 데이터 처리

6-1) Pig

  • hadoop에 저장되어 있는 데이터를 SQL과 유사한 Script를 사용하여 데이터를 처리 (MapReduce하지 않고)
  • MapReduce의 복잡성을 대체할 스크립트 언어 Pig Latin 제공
  • pig latin을 사용하여 데이터 흐름을 표현하고 복잡한 작업을 수행
  • MapReduce API를 단순화한 형태로 설계 (SQL와 흡사)

6-2) Mahout

  • hadoop 기반 데이터 마이닝 알고리즘을 구현
  • 머신러닝 및 데이터 마이닝 알고리즘 제공
  • 오픈 소스
  • 분석 머신러닝 구축을 위한 Framework
  • 주요 알고리즘 지원
  • 비즈니스 환경에 맞게 최적화

6-3) Spark ⭐

  • 클러스터 컴퓨팅 프레임워크
  • 빠른 데이터 처리 및 머신닝 지원
  • 대규모 데이터 처리를 빠른 속도로 실행시켜주는 엔진
  • 병렬 애플리케이션을 쉽게 구현할 수 있도록 하는 고급 연산자 제공
  • R, Python에서 인터프리터로 사용 가능

6-4) Impala ⭐

  • Hadoop 기반의 실시간 SQL 질의 시스템
  • 분산엔진, C++로 개발한 인메모리 엔진을 사용하여 성능이 빠름. (MapReduce를 사용하지 않음)
  • 데이터 조회를 위한 인터페이스로 HiveQL 사용.
  • 수 초 안에 SQL질의 결과를 확인할 수 있음
  • HBase와 연동가능

6-5) Hive ⭐

  • Hadoop 기반의 웨어하우징
  • 데이터분석을 도와줌 (JAVA를 몰라도)
  • HiveSQL 언어 HQL(Hive Query Language) 사용하여 데이터 조회 및 분석 (SQL과 흡사)
  • .hql 파일로 생성됨
  • HiveQL 내부에서 MapReduce Job으로 변환되어 실행

📌 데이터 웨어하우징 도구
: 기업이나 조직 내부에서 생성되는 대량의 데이터를 중앙 집중화하여 저장, 관리, 분석할 수 있는 데이터 저장소 및 관리 시스템

6-6) MapReduce ⭐

  • 대용량 데이터 분산 처리를 위한 Framework
  • 정렬된 데이터를 분산처리하는 Map 단계와 분산된 데이터를 다시 합치는 Reduce 단계를 수행
  • 대규모 분산 컴퓨팅 환경에서 대규모 데이터를 병렬로 처리가능

참고

profile
공부에는 끝이 없다

0개의 댓글

관련 채용 정보