본문 바로가기
Data/Hadoop

[하둡, 하이브로 시작하기] 1. 빅데이터

by 양진주 2024. 5. 26.

1. 빅데이터란?

 

빅데이터

- 데이터 규모: 기존 DB 관리도구의 수집, 저장, 관리, 분석 역량을 넘어서는 데이터

- 업무 수행 방식: 다양한 종류의 데규모 데이터로부터 가치 추출 ➡️ 데이터의 빠른 수집, 발굴, 분석을 지원하도록 고안된 기술 및 아키텍처

 

특징

- Volume: 저장장치 가격 ⬇️ && 네트워크 속도 ⬆️ ➡️ (수 페타바이트의 데이터)/일 생성

- Variety: 정형, 반정형, 비정형 형태

- Velocity: 정보 유통 속도 ⬆️⬆️, 데이터 처리 속도 ⬆️

+) Value: 유의미한 가치, 지표를 사용하는 사람의 의사 결정에 도움

+) Veracity: 데이터의 신뢰성, 정확성 ⬆️

 

1.1 데이터의 형태

수집 형태

- 정형: 칼럼 단위의 명확한 구분자, 형태 존재

    e.g., 데이터베이스, CSV, 엑셀

- 반정형: 메타데이터/스키마 존재

    e.g., XML, HTML, JSON

- 비정형: 형태 존재 X

    e.g., 동영상, SNS 메시지, 사진, 오디오, 음성 데이터

 

수집 시간

- 배치: 일정한 주기로 수집, 처리

- 실시간: 사용자의 입력과 동시에 처리

    e.g., 실시간 검색어, 실시간 차트 

 

1.2 분석 형태

- 대화형 분석: 사용자가 입력한 쿼리 ➡️ 바로 반응하여 결과 반환

- 배치 분석: 저장된 데이터 일정한 주기로 분석

- 실시간 분석: 사용자의 여러 입력 ➡️ 실시간으로 저장, 분석

- 기계 학습: 기계 학습 알고리즘 ➡️ 예측 모델 생성

 

2. 빅데이터 처리 단계

 

2.1. 수집

데이터 원천

- 내부 데이터: e.g., 시스템 로그, DB 데이터

- 외부 데이터: e.g., 동영상, 오디오 정보, 웹 크롤링 데이터, SNS 데이터

 

수집 방식

- 기존 데이터 수집: e.g., HTTP 웹서비스, RDB, FTP, JMS, Text

- 새로운 방식의 데이터 수집

    - SNS 데이터: e.g., Text, 이미지, 동영상

    - 전화 음성, GPS

    -  IoT 디바이스 센서

    - 공간 데이터 + 인구 데이터

 

if 데이터 개수 > 수백, 수천 개 ➡️ 관리 어려움 ➡️ 트랙잭션 처리 ➡️ 데이터 유실, 전송 여부 확인

 

데이터 수집 기술(3. 빅데이터 에코시스템 참고)

- Flume

- Kafka

- Sqoop

- Nifi

- Flink

- Splunk

- Logstash

- Fluentd

 

2.2 정제

: 데이터 ➡️ 분석 가능 형태로 정리

 

정제 단계

- Identification: 다양한 데이터 포맷/비정형 데이터 ➡️ 기본 포맷 식별

- Filtration: 정확하지 않은 데이터 제외

- Validation: 데이터 유효성 검증

- Noise Reduction: 오류 데이터 제거, 분석 불가능 데이터 제외

- Transformation: 데이터 ➡️ 분석 가능한 형태

- Compression: 변환 데이터 압축 ➡️ 저장장치 효율 ⬆️

- Integration: 처리 완료 데이터 적재 

(RDF 추출 데이터, CSV 형태 데이터 정제 단계 X)

 

2.3 적재

: 데이터 ➡️ 안전하게 보관, 분석 가능 환경으로 

 

적재 환경: NoSQL, RDB, 클라우드 스토리지, HDFS

 

2.4 분석

: 적재 데이터 ➡️ 의사 결정 데이터 제공 리포트 생성

 

2.5 시각화

 

3. 빅데이터 에코 시스템

: 빅데이터 수집, 정제, 적재, 분석, 시각화 단계를 거치는 기술들 

 

- 수집 기술

    - Flume: 서버 로그 수집 도구, 각 서버에 에이전트 설치 ➡️ 에이전트로부터 데이터를 전달 받는 콜렉터

    - Kafka: 분산 메시징 시스템, 대용량 실시간 로그 처리 특화 

    - NiFi: 시스템 간 데이터 전달 효율적 처리, 관리, 모니터링

    - Sqoop: RDBMS & HDFS 간 대용량 데이터 전송 솔루션

    - scribe: 로그 수집 시스템, 로그 ➡️ DB/메시지 큐

    - Fluentd: 로그 수집 시스템

 

- 작업 관리 기술

    - Airflow: 워크플로우 플랫폼(데이터 흐름의 시각화, 스케쥴링, 모니터링 가능)

    - Azkaban: 워크플로우 관리 도구

    - Oozie: 하둡 작업 관리 워크 플로우 및 코디네이터

 

- 데이터 직렬화: 여러 언어 간의 내부 객체 공유 처리

    - Avro: 원격 프로시저 호출 및 데이터 직렬화 프레임워크

    - Thrift: RPC 프레임워크(서로 다른 언어로 개발된 모듈의 통합 지원)

    - Protocol Buffers: RPC 프레임워크(구조화된 데이터 직렬화)

 

저장

    - HDFS: 범용 컴퓨터 클러스터로 구성 ➡️ 대용량의 파일 블록단위로 분할 ➡️ 여러 서버에 복제하여 저장

    - S3: 인터넷용 저장소

    - NoSQL

    - HBase: HDFS 기반 칼럼 기반 NoSQL 데이터베이스

 

데이터 처리: 하둡의 맵리듀스 기반 

    - MapReduce: HDFS상에서 동작하는 가장 기본적인 분석 기술

    - Spark: 인메모리 기반 범용 데이터 처리 플랫폼

    - Impala: 하둡 기반 분산 쿼리 엔진

    - Presto: 대화형 질의 처리 분산 쿼리 엔진

    - Hive: 하둡 기반 데이터웨어하우징용 솔루션

    - Hcatalog: Pig, MapReduce, Spark ➡️ Hive 메타스토어 테이블 액세스 도구

 

클러스터 관리: 자원의 효율적인 사용 

    - YARN: 클러스터 자원(데이터 처리 작업 실행) && 스케쥴링을 위한 프레임워크

    - Mesos: 클라우드 인프라스트럭처 및 컴퓨팅 엔진의 다양한 자원 통합적 관리

 

분산 서버 관리

    - Zookeeper: 분산 환경에서 서버 간의 상호 조정이 필요한 다양한 서비스 제공

 

시각화

    - Zeppelin: 웹 기반 Workspace에 다양한 솔류선의 API, Query 등 실행

    - Hue: 하둡 & 하둡 에코시스템의 지원을 위한 웹 인터페이스 제공

 

보안

    - Ranger: 하둡 클러스터 각 모듈 보안 정책 관리

 

데이터 거버넌스

    - Atlas: 조직이 보안/컴플라이언스 요구사항 준수하도록 지원

    - Amundsen: 기업에 존재하는 데이터 검색, 추천