I. 빅데이터 분석 기획 ─ Chapter 01. 빅데이터의 이해 ; (1) 빅데이터의 이해

‍박예서·2022년 5월 23일
0

01. 빅데이터 기술 및 제도

1) 빅데이터 플랫폼

빅데이터 플랫폼은 빅데이터에서 가치를 추출하기 위해 일련의 과정 ( 수집 → 저장 → 분석 → 활용) 을 규격화한 기술이다.


1) - ① 빅데이터 플랫폼 구성 요소

구성 요소주요 기능
데이터 수집- 원천 데이터의 정형 / 반정형 / 비정형 데이터 수집
- ETL/크롤러, EAI 등
데이터 저장- 정형 데이터, 반정형 데이터, 비정형 데이터 저장
- RDBMS, NoSQL 등
데이터 분석- 텍스트 분석, 머신 러닝, 통계, 데이터 마이닝
- SNS 분석, 예측 분석 등
데이터 활용- 데이터 가시화 및 BI, Open API 연계
- 히스토그램, 인포그래픽 등

1) - ② 빅데이터 플랫폼 데이터 형식

  • HTML = Hyper Markup Language
    웹페이지를 만들 때 사용되는 문서 형식으로 텍스트, 태그, 스크립트로 구성되어 있다
  • XML = eXtensible Markup Language
    • W3C 에서 개발된 SGML (Standard Generalized Markup Language) 문서 형식을 가진, 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하는 다목적 마크업 언어이다.
    • 데이터 표현을 위해 태그를 사용
  • CSV = Comma Separated Value
    • 몇 가지 필드를 쉼표(,) 로 구분한 텍스트 데이터 및 파일
  • JSON = JavaScript Object Notation
    비동기 브라우저 / 서버 통신 (AJAX) 을 위해 속성 - 값 쌍, 키 - 값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하여 자바스크립트를 토대로 개발된 개방형 표준 포맷

1) - ③ 하둡 에코 시스템 Hadoop Ecosystem

  • 하둡 프레임워크를 이루고 있는 다양한 서브 프로젝트들의 모임
  • 수집, 저장, 처리 기술과 분석, 실시간 및 시각화를 위한 기술로 구분

(1) 데이터 수집

  • 척와 Chukwa
    • 대규모 분산 시스템 모니터링을 위해 에이전트 Agent 와 컬렉터 Collector 구성을 통하여 데이터를 수집하고 수집된 데이터를 하둡 파일 시스템(HDFS)에 저장하는 기능을 제공하는 데이터 수집 기술
    • 분산 시스템으로부터 데이터를 수집, 하둡 파일 시스템에 저장, 실시간 분석 기능을 제공
    • 수집된 로그 파일을 hdfs 에 저장하는 기능 지원, HDFS를 통한 실시간 분석 지원
    • 어뎁터가 데이터를 메타데이터가 포함된 청크 Chunk 단위로 전송

  • 플럼 Flume

    • 많은 양의 로그 데이터를 효율적으로 수집, 집계, 이동하기 위해 이벤트 Event 와 에이전트 Agent 를 활용하는 시스템

  • 스크라이브 Scribe

    • 다수의 서버로부터 실시간으로 스트리밍되는 로그 데이터를 수집하여 분산 시스템에 데이터를 저장하는 대용량 실시간 로그 수집 시스템 이다.
    • 최종 데이터는 HDFS 외에 다양한 저장소를 활용하여 저장이 가능하고 HDFS 에 저장하기 위해서는 JNI 를 이용 해야 한다.
  • 히호 Hiho

    • 스쿱 Sqoop 과 같은 대용량 데이터 전송 솔루션 이며 현재 깃허브에서 공개
    • 하둡에서 데이터를 가져오기 위한 SQL 지정 가능 , JDBC 인터페이스를 지원

  • 아파치 카프카 Apache Kafka

    • 대용량 실시간 로그 처리 를 위해 기존의 메시징 시스템과 유사하게 레코드 스트림을 발행 Publish, 구독 Subscribe 하는 방식의 분산 스트리밍 플랫폼 기술

(2) 데이터 저장

  • HDFS = Dadoop Distributed File System

    대용량 파일을 분산된 서버 에 저장하고 그 저장된 데이터를 빠르게 처리할 수 있게 하는 하둡 분산 파일 시스템

    • 범용 하드웨어 기반, 클러스터에서 실행되고 데이터 접근 패턴을 스트리밍 방식으로 지원한다.

    • 다중 복제, 대량 파일 저장, 온라인 변경, 범용 서버 기반, 자동 복구의 특징이 있다.

    • 네임 노드, 보조 네임 노드, 데이터 노드로 구성되어 있다.

      구성요소설명
      네임 노드 Name Node- 파일 이름, 권한 등의 속성을 기록하는 노드
      - Master 역할을 수행
      보조 네임 노드 Secondary Name Node- HDFS 상태 모니터링을 보조
      - 주기적으로 네임 노드의 파일 시스템 이미지를 스냅샷으로 생성
      데이터 노드 Data Node- 일정한 크기로 나눈 블록 형태로 저장하는 노드
      - Slave 역할을 수행
  • HBase

    • 하둡 분산 파일 시스템 HDFS을 기반으로 구현된 칼럼 기반의 분산 데이터 베이스
    • 비 관계형이며 SQL을 지원하지 않는 특성이 있고 관계형 데이터베이스 RDBMS와 달리 수평적으로 확장성이 있어 큰 테이블에 적합한 제품
    • 실시간 랜덤 조회 및 업데이트 할 수 있으며 각각의 프로세스는 개인의 데이터를 비동기적으로 업데이트
  • 쿠두 Kudu

    • 아파치 하둡 에코시스템을 위한 오픈 소스 소프트웨어로 제작된 컬럼 기반 스토리지
    • 아파치 하둡 환경의 데이터 처리 프레임워크 대부분과 호환 가능
    • 특정 컬럼에 대한 데이터 읽기를 고속화 할 수 있는 특징이 있다.

(3) 분산 데이터 배치 처리 ─ 맵리듀스 MapReduce

대용량 데이터 세트를 분산 병렬 컴퓨팅에서 처리하거나 생성하기 위한 목적으로 만들어진 소프트웨어 프레임워크

  • 모든 데이터를 키-값(Key-Value) 쌍으로 구성, 데이터를 분류 및 처리한다.

  • Map -> Shuffle -> Reduce 순서대로 데이터를 처리

    구성 요소설명
    맵 MapKey-Value 형태로 데이터를 취합
    셔플 Shuffle데이터를 통합하여 처리
    리듀스 Reduce맵 처리된 데이터를 정리

(4) 리소스 관리 ─ 얀 Yarn

리소스 관리 컴포넌트 처리 를 분리한 하둡 2.0 에 도입된 분산 클러스터 리소스 관리 플랫폼

  • 얀 자체로 맵리듀스를 구동할 수 있음

  • 추가로 다른 분산 처리 프레임워크를 사용자의 인터페이스 개발만으로 구동할 수 있는 기능을 제공

  • 리소스 매니저 Master 노드 매니저 Slave 로 구성

    구성 요소설명
    리소스 매니저클러스터의 전반적인 관리와 스케줄러 역할을 수행하고 클러스터 이용률 최적화를 수행
    노드 매니저노드 내의 자원을 관리하고 리소스 매니저에게 전달 수행 및 컨테이너를 관리
    애플리케이션 마스터- 리소스 매니저와 자원의 교섭을 책임지고 컨테이너를 실행
    - 노드 매니저 중 하나가 애플리케이션 마스터로 할당
    컨테이너- 프로그램 구동을 위한 격리 환경을 지원하는 가상화 자원

(5) 데이터 분석 처리

  • 피그 Pig
    • 대용량 데이터 집합을 분석하기 위한 플랫폼
    • 하둡을 이용하여 맵리듀스를 사용하기 위한 높은 수준의 스크립트 언어인 피그 라틴 이라는 자체 언어를 제공한다.
    • 맵리듀스 API 를 매우 단순화 시키고 SQL 과 유사한 형태로 설계
  • 머하웃 Mahout
    • 하둡 기반으로 머신 러닝 및 데이터 마이닝 알고리즘 을 구현한 오픈 소스 시스템
    • 분류, 클러스터링, 추천 및 협업 필터링, 패턴 마이닝, 회귀 분석, 진화 알고리즘 등 주요 알고리즘을 지원
  • 아파치 스파크 Apache Spark
    • 인메모리 기반 으로 빅데이터 워크로드에 주요 사용되는 오픈 소스 분산 처리 시스템
    • 빠른 성능을 위해 인 메모리 캐싱 을 사용하고 스트리밍 데이터 처리, 온라인 러닝 머신, SQL 질의 처리, 그래프 라이브러리 처리 등 실시간 데이터 처리 가 가능
  • 임팔라 Impala
    • 클라우데라 Claudera 에서 개발한 하둡 기반의 실시간 SQL 질ㅇ의 시스템
    • 맵리듀스를 사용하지 않고, C++ 로 개발한 인메모리 In-Memory 엔진을 사용해서 빠른 성능을 유지
    • 데이터 조회를 위한 인터페이스로 HiveQL 을 사용
    • 수초 내에 SQL 질의 결과 확인 가능 + HBase 와 연동 가능
  • 프레스토 Presto
    • 페이스북 Facebook이 개발한 대화형 질의 처리 시스템
    • 빠른 대화형 질의 처리를 위한 분산된 SQL 쿼리 엔진 을 사용
    • 다양한 소스 (Hive Metastore, RDBMS, Amazon S3, HBase) 로부터 데이터를 읽어올 수 있고 메모리 기반 으로 데이터를 처리한다.
    • 하나의 Coordinator 와 실제로 Job을 수행하는 여러개의 Worker로 구성
  • 하이브 Hive
    • 하둡 기반의 DW(Data Warehouse) 솔루션
    • SQL 과 매우 유사한 HiveQL이라는 쿼리 제공
    • 사용자가 SQL 로 쿼리 작성 -> HiveQL 을 통해 내부적으로 맵리듀스 로 변환되어 실행
  • 타조 Tajo
    • 하둡 기반의 대용량데이터를 SQL 형태의 명령을 통해 분산 분석 작업 을 지원하는 대용량 데이터 웨어하우스
    • SQL 형태의 대용량 데이터 웨어하우스라는 점에서 하이브와 유사
      But ETL 뿐만이 아니라 Low-Latency 도 지원한다는 점에서 차이
    • 하둡의 HDFS를 메인 저장서로 활용 ; 다양한 파일 형태와 압축을 지원하며 ANSI-SQL 표준 준수 및 자동 최적화를 지원

(6) 하둡 관리

  • 우지 Oozie
    • 하둡 작업을 관리하는 워크 플로우 및 코디네이터 시스템
    • 자바 서블릿 컨테이너에서 실행되는 자바 웹 애플리케이션 서버로 맵리듀스나 피그와 같은 특화된 액션들로 구성된 워크플로우 제시
  • 주키퍼 Zookeeper
    • 분산 코디네이션 으로 분산 환경에서 서버들 간에 상호 조정이 필요한 다양한 서비스를 제공하는 시스템
    • 하나의 서버에만 서비스가 집중되지 않도록 서비스를 알맞게 분산하여 동시에 처리
    • 하나의 서버에서 처리한 결과를 다른 서버들과도 동기화 하여 데이터의 안정성을 보장

수제비 2022 ; 빅데이터 분석 기사 실기 정리![](https://velog.velcdn.com/images/hoseipark/post/6338eade-4e45-4b1d-bc60-98378eb994bb/image.png)

0개의 댓글