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) 데이터 저장
(3) 분산 데이터 배치 처리 ─ 맵리듀스 MapReduce
대용량 데이터 세트를 분산 병렬 컴퓨팅에서 처리하거나 생성하기 위한 목적으로 만들어진 소프트웨어 프레임워크
(4) 리소스 관리 ─ 얀 Yarn
리소스 관리 와 컴포넌트 처리 를 분리한 하둡 2.0 에 도입된 분산 클러스터 리소스 관리 플랫폼
(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)