본문 바로가기
공부는 평생하는 것이다/데이터엔지니어링

[IT/Data] 빅데이터 에코시스템

by IT Daily Life 2022. 11. 17.
728x90
반응형

빅데이터 에코시스템

빅데이터는 수집, 정제, 적재, 분석, 시각화의 여러 단계를 거칩니다. 이 단계를 거치는 동안 여러가지 기술을 이용하여 처리되고, 이 기술들을 통틀어 빅데이터 에코 시스템(Bigdata Eco System)이라고 합니다.

 

유명한 도구/기술들에 대해서 간략하게 설명 드립니다. 용어에 익숙해지세요. 


수집기술


수집기술은 빅데이터 분석을 위한 원천 데이터를 수집하는 기술입니다. 원천 데이터는 실시간 데이터 수집 기술, 배치 데이터 수집기술이 있습니다. 원천 데이터의 종류에도 로그 데이터, DB 데이터, API 호출 데이터 등 여러가지 종류가 있습니다.

플룸(Flume)

- 플룸은 클라우데라에서 개발한 서버 로그 수집 도구 입니다.

카프카(Kafka)

- 카프카는 링크드인에서 개발한 분산 메시징 시스템입니다. 대용량 실시간 로그 처리에 특화 되어 있습니다. 발행(publish) - 구독(subscribe) 모델로 구성됩니다.


작업 관리 기술


작업 관리 기술은 빅데이터를 분석하는 여러가지 단계를 효율적으로 생성, 관리하고 모니터링 할 수 있게 도와주는 기술 입니다.

Airflow

- Airflow(에어플로우)는 에어비앤비에서 개발한 데이터 흐름의 시각화, 스케쥴링, 모니터링이 가능한 워크플로우 플랫폼입니다. 하이브, 프레스토, DBMS 엔진과 결합하여 사용 할 수 있습니다.


적재(저장)


빅데이터는 대용량의 데이터를 저장하기 때문에 데이터의 저장의 안정성과 속도가 중요합니다. HDFS외에도 아마존 AWS의 S3, MS Azure의 Data Lake, Blob Storage, Google의 Cloud Storage가 있습니다.

HDFS

- 하둡 분산 파일 시스템(HDFS, Hadoop distributed file system)은 하둡 프레임워크를 위해 자바 언어로 작성된 분산 확장 파일 시스템입니다. HDFS는 범용 컴퓨터를 클러스터로 구성하여 대용량의 파일을 블록단위로 분할하여 여러서버에 복제하여 저장합니다.


데이터 처리


데이터 처리는 빅데이터를 분석하는 기술입니다. 하둡의 맵리듀스를 기반으로, 스파크, 하이브, HBase, 임팔라등 여러가지 기술이 있습니다.

MapReduce

- 맵리듀스는 HDFS상에서 동작하는 가장 기본적인 분석 기술입니다. 간단한 단위작업을 반복할 때 효율적인 맵리듀스 모델을 이용하여 데이터를 분석합니다

Spark

- 스파크(Spark)는 인메모리 기반의 범용 데이터 처리 플랫폼입니다. 배치 처리, 머신러닝, SQL 질의 처리, 스트리밍 데이터 처리, 그래프 라이브러리 처리와 같은 다양한 작업을 수용할 수 있도록 설계되어 있습니다. 

Impala

- 임팔라(Impala)는 클라우데라에서 개발한 하둡 기반의 분산 쿼리 엔진입니다. 맵리듀스를 사용하지 않고, C++로 개발한 인메모리 엔진을 사용해 빠른 성능을 보여줍니다. 임팔라는 데이터 조회를 위한 인터페이스로 HiveQL을 사용하며, 수초 내에 SQL 질의 결과를 확인할 수 있습니다. 

Presto

- 프레스토(Presto)는 페이스북이 개발한 대화형 질의를 처리하기 위한 분산 쿼리 엔진입니다. 메모리 기반으로 데이터를 처리하며, 다양한 데이터 저장소에 저장된 데이터를 SQL로 처리할 수 있습니다. 특정 질의 경우 하이브 대비 10배 정도 빠른 성능을 보여주며, 현재 오픈소스로 개발이 진행되고 있습니다.

Hive

- 하이브(Hive)는 하둡 기반의 데이터웨어하우징용 솔루션입니다. 페이스북에서 개발했으며, 오픈소스로 공개되며 주목받은 기술입니다. SQL과 매우 유사한 HiveQL이라는 쿼리 언어를 제공합니다. 그래서 자바를 모르는 데이터 분석가들도 쉽게 하둡 데이터를 분석할 수 있게 도와줍니다. HiveQL은 내부적으로 맵리듀스 잡으로 변환되어 실행됩니다.


클러스터 관리


빅데이터는 단일 시스템이 보다는 보통 클러스터로 처리 되기 때문에 자원의 효율적인 사용이 필요합니다. 클러스터의 관리를 위한 여러가지 기술이 있습니다.

 

YARN

- 얀(YARN)은 데이터 처리 작업을 실행하기 위한 클러스터 자원(CPU, 메모리, 디스크등)과 스케쥴링을 위한 프레임워크입니다. 기존 하둡의 데이터 처리 프레임워크인 맵리듀스의 단점을 극복하기 위해서 시작된 프로젝트이며, 하둡2.0부터 이용이 가능합니다. 맵리듀스, 하이브, 임팔라, 타조, 스파크 등 다양한 애플리케이션들은 얀에서 리소스를 할당받아서, 작업을 실행하게 됩니다.


분산 서버 관리


클러스터에서 여러가지 기술이 이용될 때 하나의 서버에서 모든 작업이 진행되면 이 서버가 단일실패지점(SPOF)가 됩니다. 이로 인한 리스크를 줄이기 위해 분산 서버 관리 기술을 이용합니다.

Zookeeper

- 분산 환경에서 서버 간의 상호 조정이 필요한 다양한 서비스를 제공하는 시스템으로, 크게 다음과 같은 네 가지 역할을 수행합니다.

- 첫째, 하나의 서버에만 서비스가 집중되지 않게 서비스를 알맞게 분산해 동시에 처리하게 해줍니다. 둘째, 하나의 서버에서 처리한 결과를 다른 서버와도 동기화해서 데이터의 안정성을 보장합니다. 셋째, 운영(active) 서버에 문제가 발생해서 서비스를 제공할 수 없을 경우, 다른 대기 중인 서버를 운영 서버로 바꿔서 서비스가 중지 없이 제공되게 합니다. 넷째, 분산 환경을 구성하는 서버의 환경설정을 통합적으로 관리합니다.

- 예를 들면 HA(High Availability) 구성된 HDFS 네임노드의 Active 노드 선출, HBase 리전서버의 Active 서버 선출, Hiveserver2의 다중 선택등을 지원합니다.


 

728x90
반응형