IT 기초/Infra

Hadoop

데이터 세상 2021. 12. 27. 11:39

Hadoop

  • Apache Hadoop (High Availability Distributed Object-Oriented Platform)
  • 대량의 자료를 처리할 수 있는 큰 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원하는 프리웨어 자바 소프트웨어 프레임워크

 

HDFS(Hadoop Distributed File System)

  • Hadoop 프레임워크를 위해 자바 언어로 작성된 분산 확장 파일 시스템. 
  • 여러 기계에 대용량 파일들을 나눠서 저장. 데이터를 여러 서버에 중복해서 저장함으로써 데이터 안정성을 확보
  • 하드웨어 오동작: 하드웨어 오동작이 발생되더라도 빨리 자동으로 복구하는 것이 중요 목표
  • 스트리밍 자료 접근: 범용 파일 시스템과 달리 반응 속도보다는 시간당 처리량에 최적화
  • 큰 자료 집합: 한 파일이 GB나 TB 정도의 크기를 갖는 것을 목적으로 설계됨
  • 간단한 결합 모델: 한번 쓰고 여러 번 읽는 모델에 적합한 구조
  • 자료를 옮기는 것보다 계산 작업을 옮기는 것이 비용이 적게 듦
  • 다른 종류의 하드웨어와 소프트웨어 플랫폼과의 호환성

 

1. HDFS는 데이터를 저장하며, 다수의 노드에 복제 데이터도 함께 저장해서 데이터 유실을 방지

2. HDFS에 파일을 저장하거나, 저장된 파일을 조회하려면 스트리밍 방식으로 데이터에 접근해야 함

3. 한번 저장한 데이터는 수정할 수 없고, 읽기만 가능하게 해서 데이터 무결성을 유지(2.0 알파버전부터는 저장된 파일에 append가 가능하게 됨)

4. 데이터 수정은 불가능하지만 파일이동 삭제, 복사할 수 있는 인터페이스를 제공함

 

분산 코디네이터

Zookeeper

  • 분산 환경에서 서버간의 상호 조정이 필요한 다양한 서비스를 제공하는 시스템
  • 분산 동기화를 제공하고 그룹 서비스를 제공하는 중앙 집중식 서비스로 알맞은 분산처리 및 분산 환경을 구성하는 서버 설정을 통합적으로 관리

 

분산 리소스관리

YARN

  • 작업 스케줄링 미 클러스터 리소스 관리를 위한 프레임워크
  • Mapreduce, 하이브, 임팔라, 스파크 등 다양한 애플리케이션들은 얀에서 작업을 실행

Mesos (클라우드 환경에 대한 리소스 관리)

  • Linux 커널과 동일한 원칙을 사용, 컴퓨터에 API(ex. Hadoop, Spark, Kafka, Elasticsearch)를 제공

 

데이터 저장

Hbase (분산 데이터베이스)

  • 구글 Bigtable을 기반으로 개발된 비 관계형 데이터베이스
  • Hadoop 및 HDFS위에 Bigtable과 같은 기능을 제공

HDFS (분산 파일데이터 저장)

  • 애플리케이션 데이터에 대한 높은 처리량의 액세스를 제공하는 분산 파일 시스템

Kudu (컬럼기반 스토리지)

  • Hadoop eco system에 새로 추가되어 급변하는 데이터에 대한 빠른 분석을 위해 설계

 

데이터 수집

Chukwa

  • 분산 환경에서 생성되는 데이터를 안정적으로 HDFS에 저장하는 플랫폼
  • 대규오 분산 시스템을 모니터링 하기 위한 시스템

Flume

  • 많은 양의 데이터를 수집, 집계 및 이동하기 위한 분산형 서비스

Scribe

  • 페이스북에서 개발한 데이터 수집 플랫폼
  • Chukwa와 다르게 데이터를 중앙서버로 전송하는 방식, 최종 데이터는 다양한 저장소로 활용할 수 있음

Kafka

  • https://epicdevs.com/17
  • 데이터 스트림을 실시간으로 관리하기 위한 분산 시스템
  • 대용량 이벤트 처리를 위해 개발
  • 발행-구독(publish-subscribe) 모델을 기반으로 동작하며 크게 producer, consumer, broker로 구성

 

데이터 처리

Pig

  • Hadoop에 저장된 데이터를 Mapreduce 프로그램을 만들지 않고 SQL과 유사한 스크립트를 이용해 데이터를 처리, 맵리듀스 API를 매우 단순화한 형태로 설계

Mahout

  • 분석 기계학습에 필요한 알고리즘을 구축하기 위한 오픈소스 프레이워크
  • 클러스터링, 필터링, 마이닝, 회귀분석 등 중요 알고리즘을 지원

Spark

  • 대규모 데이터 처리를 위한 빠른 속도로 실행시켜주는 엔진
  • 병렬 애플리케이션을 쉽게 만들 수 있는 80개 이상의 고급 연산자를 제공, 파이썬, R 등에서 대화형으로 사용 가능

Impale

  • Hadoop 기반 분사 엔진
  • Mapreduce를 사용하지 않고 C++로 개발한 인메모리 엔진을 사용해 빠른 성능 가능

Hive

  • Hadoop 기반 데이터 솔루션
  • 페이스북에서 개발한 오픈소스로 SQL과 유사한 HiveQL이라는 언어를 제공하여 쉽게 데이터 분석을 할 수 있게 함
반응형

'IT 기초 > Infra' 카테고리의 다른 글

SAN/NAS/DAS  (0) 2021.12.27
DB availability  (0) 2021.12.27
git vs svn  (0) 2021.12.27
RDBMS vs NoSQL  (0) 2021.12.27
Load Balancing  (0) 2021.12.27