본문 바로가기
빅데이터 분석기획

빅데이터 플랫폼의 정의와 구성 및 기능

by 정보돌 2023. 5. 30.

빅데이터 플랫폼은 다양하고 방대한 양의 데이터로부터 수집한 데이터를 처리하고, 분석하여 지식을 추출함으로써 지능화된 시버스를 제공하기 위한  IT 환경이다.

 

빅데이터 플랫폼 구성 및 기능

빅데이터 플랫폼을 구성하는 구성요소는 빅데이터 수집, 저장, 처리, 분석, 표현 측면에서 구분할 수 있으며,  각 구성요소가 제공해야 하는 주요기능은 다음과 같다.

구분 주요기능
수집 비정형 데이터 수집, 정형 데이터 수집, ETL, Web Robot, 로그 수집 웹스크롤링,  Open API를 활용한 데이터 수집, IoT 센싱
저장 정형 및 비정형 데이터 분산관리, 데이터 공유, 메모리 관리, 데이터 보안 등
처리 배치처리, 실시간 처리, 분선병렬 처리, 인메모리 처리 등
분석 텍스트 분석, 기계학습, 통계기능, 데이터마이닝, 소셜 네트워크 분석, 예측 분석
시각화 차트, 다차원 그래프 등 연관관계, 상관관계 시각화 기능

 

빅데이터 플랫폼 구조
[ 빅데이터 플랫폼 구조 ]


빅데이터 플랫폼을 구성하는 오픈소스 (에코시스템)

  • 빅데이터 플랫폼을 대표하는 기술로 분산처리기술을 제공하는 하둡(Hadoop)을 들 수 있다
  • 하둡은 자바기반 프레임워크로서 대용량의 데이터를 분산처리하는 기능을 제공한다.
  • 최근에는 하둡의 기을을 보완하는 오픈소스 소프트웨어들을 활용하여 빅데이터 플랫폼을 구축한다.
에코시스템
하둡은 비스니스에 효율적으로 적용할 수 있도록 다양한 서브 프로젝트를 제공한다. 이러한 서브 프로젝트가 상용화되면서 하둡 에코시스템이 구성되었다. 분산 데이터를 저장하는 HDFS(Storage)와  분석 데이터를 처리하는 맵리듀스(컴퓨팅)가 하둡 코어프로젝트에 속하고 그 외는 모두 하둡의 서브프로젝트이다.

하둡 에코시스템 (Hadoop Ecosystem)
[ 시작하세요! 하둡 프로그래밍(위키북스) ]

 

다음은 에코시스템의 각각의 기능과 해당 소프트웨어에 대한 살펴본다.

코디네이터

소프트웨어 셜명
Zookeeper 분산환경에서 서버간의 상호 조정이 필요한 다양한 서비스를 제공하는 시스템으로 크게 다음과 같은 역할을 수행한다.
하나의 서비스에만 집중되지 않게 서비스를 적절하게 분산해 동시에 처리할 수 있도록 지원
하나의 서버에서 처리한 결과를 다른 서버와도 동기화해서 데이터의 안정성을 보장
운영서버에 문제가 발생해서 서비스를 제공할 수 없을 경우, 다른 대기 중인 서버를 운영 서버로 바꿔서 서비  스가 중지 없이 제공하여, 분산환경을 구성하는 서버의 환경설정을 통합적으로 관리한다.

공식사이트 : http://zookeeper.apache.org/

리소스관리

소프트웨어 설명
Yarn Yarn은 데이터 처리작업을 실행하기 위한 클러스터 자원(CPU, 메모리, 디스크 등) 스케줄링을 위한 프레임    워크이다.
맵리듀스, 하이브, 임팔라, 타조, 스파크 등 다양한 Application들은 Yarn에서 리소스를 할당받아서 작업을 실  행한다.

공식사이트 : https://classic.yarnpkg.com/

데이터 저장

소프트웨어 설명
HBase HBase는 HDFS 기반의 컬럼 기반 데이터베이스이다..
구글의 BigTable 논문을 기반으로 개발, 실시간 랜덤 조회 및 업데이트가 가능하며, 각 프로세스는 개인의  데이터를 비동기적으로 업데이트 할 수 있다..

Reference : HBase란 무엇입니까? – Amazon Web Services(AWS)
공식사이트 :
Apache HBase – Apache HBase™ Home
Kudu Kudu는 빠른 데이터에서 빠른 분석을 수행하기 위한 스토리지이다.
빠른 삽입과 업데이트를 복합적으로 제공하며, 효율적인 열별 스캔으로 하나의 스토리지 계층에서 여러 개 의 실시간 분석 워크로드를 실행한다.

공식사이트 : Apache Kudu - Fast Analytics on Fast Data

데이터 수집

소프트웨어 설명
Chukwa 분산 환경에서 생성되는 데이터를 HDFS에 안정적으로 저장하는 플랫폼이다..
분산된 각 서버에서 에이전트를 실행하고 Collector가 에이전트로부터 데이터를 .받아서 HDFS에 저장한다.

Chukwa - Welcome to Apache Chukwa
공식사이트 :     Chukwa - Welcome to Apache Chukwa
Flume Flume은 Chukwa 처럼 분산된 서버에서 에이전트가 설치되고, 에이전트로부터 데이터를 전달받은 Collector로 구성된다.
Flume은 분산환경에서 대량의 로그 데이터를 효과적으로 수집하여, 합친 후 다른 곳으로 전송할 수 있는 신뢰성을 가진 서비스이다.
Flume은 단순하며 유연한 스트리밍 데이터 플로수(Streaming Data Flow) 아키덱처를 기반으로 하다.
Flume은 장애에 쉽게 대처 가능하며, 로그 유실애 대한 신뢰수준을 상황에 맞게 변경할 수 있을 뿐만 아니라, 장애 발생시 다양한 복구 메커니즘을 제공한다.

공식사이트 : Welcome to Apache Flume — Apache Flume
Kafka Kafka는 데이터 스트림을 실시간으로 관리하기 위한 분산 메시징 시스템이다
파티셔닝을 지원하기 때문에 다수의 카프카 서버에서 메세지를 분산 처리 할 수 있으며, 시스템 안정성을 위
하여 로드 벨런싱과 내고장성(Fault Tolerant)를 보장한다.
지속적으로 증가하는 데이터 양에 따라 확장될 뿐만 아니라 비즈니스 전반에서 해당 데이터를 실시간으로   제공한다.

공식사이트 : Apache Kafka

데이터 처리

소프트웨어 설명
Pig Pig는 Yahoo에서 개발했으나 아파치 프로젝트에 포함되어 복작합 맵리듀스 프로그래밍을 대체할 Pig Latin  이라는 차체 언어를 제공한다.
맵리듀스를 API를 매우 단순화한 형태이고 SQL과 유사한 형태로 설계되었다.

공식사이트 : Welcome to Apache Pig!
Spark Spark는 인메모리 기반의 범용 데이터 처리 플랫폼이다.
배치 처리, 머신러닝, SQL 질의 처리, 스트리밍 데이터 처리, 그래프 라이브러리 처리과 같은 다양한 작업을  수용할 수 있도록 설계 되었다.
Spark는 주로 실시간 처리 영역, Hadoop은 배치 처리 영역에서 사용된다.
Spark는 처리속도와 효율성을 높이는 데 필요한 유연성과 확작성을 갖춘 사용하기 쉬운 형식으로 고급 분석을 제공한다.

공식사이트 : Apache Spark™ - Unified Engine for large-scale data analytics
Hive Hive는 하둡기반의 데이터 웨어하우징용 솔루션이다.
페이스북에서 개발했으며, SQL과 매우 유사한 HiveQL 이라는 쿼리 언어를 제공한다.
Java를 모르더라도 하둡 데이터를 쉽게 분석할 수 있도록 도와주는 역할을 한다.

공식사이트 :Apache Hive 
Mahout Mahout은 하둡기반으로 데이터 마이닝 알고리즘을 구현한 오픈소스 프로젝트이다.
분류(Classfication), 클러스터링(Clustering) 등 주요 알고리즘을 지원한다.

공식사이트 : Apache Mahout
Impala Impala는 클라우데라에서 개발한 하둡기반의 분산 쿼리 엔진이다.
Impala는 데이터 조회를 위한 인터페이스로 HiveQL을 사용하며, SQL 질의 결과를 확인 할 수 있다.

공식사이트 : Impala (apache.org)
Presto Presto는 페이스북이 개발한 대화형 질의를 처리하기 위한 분석 쿼리 엔진이다.
메모리 기반으로 데이터를 처리하며 다양한 데이터 저장소레 저장된 데이터를 SQL로 처리 할 수 있다.

공식사이트 : Presto: Free, Open-Source SQL Query Engine for any Data (prestodb.io)
Tajo Tajo는 고려대학교 박사 과정 학생들이 주도해서 개발한 하둡기반의 데이터 웨어하우스 시스템이다.
맵리듀스 엔진이 아닌 자체 분산 처리 엔진을 사용한다.
데이터 저장소는 HDFS를 상용하며, SQL을 통해 실시간으로 데이터를 조회할 수 있다.

공식사이트 : http://tajo.incubator.apache.org

워크플로우 관리

소프트웨어 설명
Oozie Oozie는 하둡 작업을 관리하는 워클로우 및 코디네이터 시스템이다.
빅데이터 프로젝트의 규모가 커지거나 더 넓은 영역으로 확대돼 여러개의 MapReduce Job을 서로 연결하여 각각의 job들의 시작과 종결, 그 사이의 각종 분기조건 등을 지정해 자동화하거나 스케줄링 하도록 지원하는 솔루션이다.

공식사이트 :  Oozie - Apache Oozie Workflow Scheduler for Hadoop
Airflow Airflow는 Python코드로 Workflow를 작성하고, 스케줄링, 모니터링하기 위해 AirBnB에서 만든 플랫폼으로  현재는 아파치 재단에서 관리 중인 오픈소스 프로잭트이다.
Airflow를 통해서 데이터엔지니어링의 ETL 작업을 자동화하고, DAG(Directed Acyclic Graph) 형태의 워크플로우 작성이 가능하다.

공식사이트 : Apache Airflow
Azkaban Azkaban은 링크드인에서 만든 Workflow 플랫폼이다.

공식사이트 : Azkaban
Nifi Nifi는 데이터 흐름을 자동화하도록 설계된 아파치 재단의 프래임웤크이다.
Nifi는 실시간 데이터 처리에 유리하지만, 복잡한 연산이 어려워 Spark, Storm과 연동하여 사용하는 경우가  많다.

공식사이트 : Apache NiFi

데이터시각화

소프트웨어 셜명
Zeppelin Zeppelin은 빅데이터 분석가를 위한 웹기반의 분석도구이며 분석결과에 대한 시각화 작업을 지원하다.

공식사이트 :Zeppelin (apache.org)
Tableau 데이터 엑세스, 시각화, 분석에 필요한 모든것을 제공한다.
사용자가 데이터를 시각적으로 탐색하고 이해하기 쉽도록 다양한 데이터 소스에서 데이터를 추출하고 변환한 다음 그래프, 차트, 대시보드 등 다양항 시각적 형식으로 표현할 수 있다.

공식사이트 : Business Intelligence and Analytics Software (tableau.com)

마치며

지금까지 빅데이터 플랫폼을 구성하는 오픈소스 (에코시스템)의 구성요소에 대하여 알아봤으며 다음에는 빅데이터 플랫폼 프로세스에 에 대하여 알아보도록 하겠다.

댓글