티스토리 뷰
빅데이터 탐색 개요
- 처리/탐색
- 처리
- 데이터를 가공하는 단계
- filtering, cleansing, 통합, 분리 등을 거쳐서 빅데이터 웨어하우스를 생성
- 탐색
- 데이터를 이해하는 단계 (EDA)
- 처리
- 빅데이터 마트
- 빅데이터 웨어하우스를 탐색을 할 수 있게 되고, 탐색을 할 수 있게 되면 데이터를 이해하게 되었으니 데이터를 다시 한번 이해하기 쉽게 만드는 것.
- 빅데이터 처리/탐색의 최종 목표는 빅데이터 분석할 수 있는 빅데이터 마트를 만드는 것이다.
Hive - 하이브
- SQL과 유사한 방식으로 만들어 하둡에 접근성을 높인 오픈소스 프레임워크
- 단점
- 맵리듀스 코어를 그대로 사용함으로써 성능면에서 만족스럽지 못했다.
- 네트워크 I/O, 디스크 I/O가 너무 크기 때문에 반복적인 대화형 연산작업에 하이브가 적합하지 않다는 단점이 대두되었다. 이 단점을 극복하기 위한 프로젝트 중 하나가 Spark이다.
주요 구성 요소
- CLI
- 사용자가 하이브 쿼리를 입력하고 실행할 수 있는 인터페이스
- Hive Server1 기반의 CLI와 Hive Server2 기반의 Beeline이 있다.
- JDBC/ODBC Driver
- 하이브의 쿼리를 다양한 데이터베이스와 연결하기 위한 드라이버를 제공한다.
- Query Engine
- 사용자가 입력한 하이브 쿼리를 분석해 실행 계획을 수립하고 Hive QL(Query Language)을 맵리듀스 코드로 변환 및 실행한다.
- MetaStore
- 하이브에서 사용하는 테이블의 스키마 정보를 저장 및 관리하며, 기본적으로 더비(Derby DB)가 사용되나 다른 DBMS(MySQL, PostgreSQL)로 변경 가능하다.
하이브 아키텍처
- 쿼리 엔진과 메타 스토어가 유기적으로 작동한다.
- Thrift API
- 하이브의 기능을 Thrift 프로토콜을 이용하여 API로 제공하기 위해 사용하는 기능 중 하나
- CLI 콘솔에서 사용자가 쿼리를 실행하면 쿼리 엔진이 이를 받아 메타 스토어에서 해당 데이터에 대한 정보를 파악해서 맵리듀스 프로그램으로 작동하고, 이 맵리듀스 프로그램이 하둡 클러스터에 전송되어 여러 데이터 노드에서 분산 실행되는 아키텍처이다.
- Hive SQL -> MapReduce -> Hive Result의 과정에서 MetaStore가 아주 중요한 역할을 한다.
- External
- Schema 제약사항이 없는 데이터 레이크의 영역
- 대규모로 다양한 데이터를 쉽게 모을 수 있는 특징
- Managed
- Schema 제약사항이 있는 데이터 웨어하우스의 영역
- 레이크의 데이터를 가져다가 정제, 필터링, 결합을 하여 정형화된 데이터로 만드는 과정을 거쳐야하기 때문에 Schema에 대한 제약사항이 필요하다.
Spark - 스파크
- 하이브의 단점을 보완하기 위해 개발된 프레임워크가 스파크였다. 그럼 스파크에서는 하이브에서의 단점을 어떻게 보완했을까?
- 하둡에 분산되어 있는 블록단위의 파일들을 최초에 읽어들어오는 것은 스파크도 동일하지만, 처리한 결과들은 네트워크를 통해서 디스크가 아닌 곧바로 런타임 환경의 메모리에 저장을 한 후, 주변의 스파크 프로그램과 중간 결과를 바로바로 공유하도록 했다. 이 방식으로 불필요한 네트워크 I/O, 디스크 I/O를 줄여서 성능을 빠르게 보장하였다.
주요 구성 요소
- Spark RDD
- 스파크의 전부
- 스파크 프로그래밍의 기초 데이터셋 모델
- 스파크가 데이터를 로드하여 RDD 구조로 만들고, 이 RDD 구조로 만든 데이터를 어떻게 변환 할 것인가와 RDD의 라이브러리를 어떻게 활용하는지가 스파크에서의 핵심 기술이다.
- Spark Driver / Executors
- Driver - 프로그램을 분산 노드에서 실행하기 위한 Task의 구성, 할당, 계획 등을 수립
- Executors - Task를 실행 관리하며, 분산 노드의 스토리지 및 메모리를 참조
- Spark Cluster Manager
- 스파크 실행 환경을 구성하는 클러스터 관리자로 Mesos, YARN, Spark Standalone(스파크 단독모드)이 있다.
- Spark SQL
- 하이브와 비교되는 스파크의 컴포넌트
- SQL 방식으로 스파크 RDD 프로그래밍을 지원한다.
- Spark Streaming
- 스트리밍 데이터를 마이크로타임의 배치로 나누어 실시간 처리한다.
- Spark MLib
- 스파크에서 머신러닝 프로그래밍을 지원한다.
- Spark GraphX
- 다양한 유형의 네트워크(SNS, 하이퍼링크 등) 구조 분석을 지원한다.
스파크 아키텍처
Ozie - 우지
- 작업의 흐름을 정의하고 작업의 흐름을 제어하는 프레임워크
주요 구성 요소
- Oozie Workflow
- 주요 액션에 대한 작업 규칙과 플로우를 정의한다.
- Oozie Client
- 워크플로우를 서버에 전송하고 관리하기 위한 환경이다.
- Oozie Server
- 워크플로우 정보가 잡으로 등록되어 잡의 실행, 중지, 모니터링을 관리한다.
- Control node
- 워크플로우의 흐름을 제어하기 위한 Start, End, Decision 노드 등의 기능을 제공한다.
- Action node
- 잡의 실제 수행 태스크를 정의하는 노드로서 하이브, 피그, 맵리듀스 등의 액션으로 구성된다.
- Coodinator
- 워크플로우 잡을 실행하기 위한 스케줄 정책을 관리한다.
우지 아키텍처
Hue - 휴
- 빅데이터 탐색 과정은 길며 많은 도구들이 활용되는데, 일반 분석가 등의 업무 담당자가 하둡 에코 시스템에 모두 접속하여 shell script 등의 명령을 사용하기에는 어려움이 존재한다. 이러한 기술의 복잡도를 숨기고 하둡 에코 시스템에 대한 접근성과 편의성을 높인 소프트웨어가 만들어졌다. 그 중 하나가 휴이다.
- 다양한 하둡 에코 시스템의 기능들을 웹 UI로 제공한다.
주요 구성 요소
- Job Designer
- 우지의 워크플로우 및 Coordinator를 웹 UI에서 디자인
- Job Browser
- 등록한 잡의 리스트 및 진행 상황과 결과 등을 조회
- Hive Editor
- 하이브 QL을 웹 UI에서 작성, 실행, 관리
- Pig Editor
- 피그 스크립트를 웹 UI에서 작성, 실행, 관리
- HDFS Browser
- 하둡의 파일시스템을 웹 UI에서 탐색 및 관리
- HBase Browser
- HBase의 HTbale을 웹 UI에서 탐색 및 관리
휴 아키텍처
- 하둡 에코 시스템을 통합하기 위해 자체 플러그인 설치 또는 API를 통해 연동을 한다.
- 웹 UI를 통해 접근성을 매우 높였다.
'Data Engineering > Big Data' 카테고리의 다른 글
[빅데이터 분석] Impala, Zeppelin, Mahout, Sqoop (0) | 2022.11.11 |
---|---|
[빅데이터 실시간 데이터 적재] HBase, Redis, Storm, Espher (0) | 2022.10.26 |
[빅데이터 수집] Flume, Kafka를 활용한 적재 (0) | 2022.10.25 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 이코테
- mahout
- oozie
- 파이썬
- cka
- kubernetes
- GROK
- sqoop
- 빅데이터
- Algorithm
- Flutter
- HDFS
- 네트워크
- logstash
- Espher
- 빅데이터를지탱하는기술
- BOJ
- kafka
- CSAPP
- heapq
- Hadoop
- CS
- 프로그래머스
- Python
- DFS
- elasticsaerch
- OS
- Elasticsearch
- DP
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함