로그(Log)

: 로그(Log)는 기업에서 발생하는 대표적인 비정형 데이터

: 용량이 방대하기 때문에 이를 분석하기 위해서는 고성능과 확장성을 가진 시스템이 필요

: 로그 데이터 수집 시스템의 예 : 아파치 Flume-NG, 페이스북 Scribe, 아파치 Chuckwa

 

대용량 비정형 데이터 수집 시 시스템의 특징

- 초고속 수집 성능과 확장성 : 수집 대상 서버가 증가하면 증가한 서버 수만큼 에이전트의 수를 늘리는 방식으로 쉽게 확장할 수 있는 구조

- 데이터 전송 보장 메커니즘 : 데이터가 여러 단계를 거쳐 저장소에 도착할 수 있는데, 단계별로 혹은 인접한 단계끼리 신호를 주고받아 이벤트의 유실을 방지하는 방식으로 전송을 보장할 수 있음, 각 방식은 성능과 안정성이라는 트레이드 오프가 존재하므로 비지니스의 특성을 고려해 선택해야함

- 다양한 수집과 저장 플러그인

- 인터페이스 상속을 통한 애플리케이션 기능 확장 : 인터페이스를 확장해 원하는 부분만 비지니스 용도에 맞게 수정할 수 있어야 함

 

대규모 분산 병렬 처리

하둡(Hadoop)

: 대규모 분산 병렬 처리의 업계 표준인 맵리듀스(MapReduce)시스템분산 파일시스템인 HDFS를 핵심 구성요소로 가지는 플랫폼 기술

: 여러 대의 컴퓨터를 마치 하나의 시스템인 것처럼 묶어 분산 환경에서 빅데이터를 저장 및 처리할 수 있도록 하는 자바 기반의 오픈소스 프레임워크

: 비공유 분산 아키텍처를 사용

 

하둡(Hadoop)의 특징

- 선형적인 성능과 용량 확장

: 여러 대의 서버로 클러스터를 만들어 하둡을 구축할 때 이론적으로 클러스터를 구성할 수 있는 서버의 대수에는 제한이 없고, 통상적으로 최소 클러스터 대수는 5대 정도

: 하둡은 비공유(Shared Nothing) 분산 아키텍처 시스템이기 때문에 서버를 추가하면 연산 기능과 저장 기능이 서버의 대수에 비례해 증가한다

- 고장 감내성

: HDFS에 저장되는 데이터는 3중복제가 되어 서로 다른 물리서버에 저장되므로 서버에서 장애가 발생하더라도 데이터 유실을 방지할 수 있음

: 맵리듀스 작업 수행 중 특정 태스크에서 장애가 생기면, 시스템이 자동으로 감지해 장애가 발생한 태스크만 다른 서버에서 재실행 할 수 있음

- 핵심 비즈니스 로직에 집중

: 하둡의 맵리듀스는 맵과 리듀스라는 2개의 함수만 구현하면서 동작하는 시스템

: 오직 비즈니스 로직에만 집중할 수 있도록 시스템 수준에서 발생하는 장애에 대해 자동 복구(Failover)를 제공하고, 확장성 및 성능 등의 이슈도 하둡이 내부적으로 최적화해 처리한다

 

하둡 에코 시스템(Hadoop Ecosystem)

: 하둡 프레임워크를 이루고 있는 다양한 서브 프로젝트들의 집합으로, 수집, 저장, 처리기술과 분석, 실시간 SQL 질의 기술로 구분

 

1. 비정형 데이터 수집

- 척와(Chuckwa) : 분산된 각 서버에서 에이전트를 실행하고, 컬렉터가 에이전트로부터 데이터를 받아 HDFS에 저장하는 기술

- 플럼(Flume) : 많은 양의 로그 데이터를 효율적으로 수집, 집계, 이동하기 위해 이벤트와 에이전트를 활용하는 기술

- 스크라이브(Scribe) : 다수의 서버로부터 실시간으로 스트리밍되는 로그 데이터를 수집하여 분산 시스템에 데이터를 저장하는 대용량 실시간 로그 수집 기술이며, 최종 데이터는 HDFS 외에 다양한 저장소를 활용

 

2. 정형 데이터 수집

- 스쿱(Sqoop) : 대용량 데이터 전송 솔루션으로 커넥터를 사용하여 관계형 데이터베이스 시스템(RDBMS)에서 하둡 파일 시스템(HDFS)으로 데이터를 수집하거나, 하둡 파일 시스템에서 관계형 데이터베이스로 데이터를 보내는 기술

- 히호(Hiho) : 스쿱과 같은 대용량 데이터 전송 솔루션이며, 하둡에서 데이터를 가져오기 위한 SQL을 지정할 수 있으며, JDBC 인터페이스를 지원

 

3. 분산 데이터 저장

- HDFS : 대용량 파일을 분산된 서버에 저장하고, 그 저장된 데이터를 빠르게 처리할 수 있게 하는 하둡 분산 파일 시스템으로 범용 하드웨어 기반 클러스터에서 실행되고 데이터 접근 패턴을 스트리밍 방식으로 지원하며, 다중 복제, 대량 파일 저장, 온라인 변경, 범용 서버 기반, 자동 복구 특징이 있음

 네임노드 : 마스터 역할, 모든 메타데이터 관리, 데이터노드들로부터 하트비트를 받아 상태 체크

 보조 네임노드 : 상태 모니터링을 보조함

 데이터노드 : 슬레이브 역할, 데이터 입출력 요청, 데이터 유실방지를 위해 블록을 3중 복제

 

4. 분산 데이터베이스

- HBASE : HDFS를 기반으로 구현된 컬럼 기반의 분산 데이터베이스실시간 랜덤 조회 및 업데이트를 할 수 있으며, 각각의 프로세스는 개인의 데이터를 비동기적으로 업데이트

 

5. 분산 데이터 처리

맵리듀스 : 대용량 데이터 세트를 분산 병렬 컴퓨팅에서 처리하거나 생성하기 위한 목적으로 만들어진 소프트웨어 프레임워크로 모든 데이터를 키-값(Key-Value) 쌍으로 구성

- : Key-Value 형태로 데이터를 취합

- 셔플 : 데이터를 통합하여 처리

- 리듀스 : 맵 처리된 데이터를 정리

 

6. 리소스 관리

- 얀(YARN) : 하둡의 맵디류스 처리 부분을 새롭게 만든 자원 관리 플랫폼으로, 리소스 매니저와 노드 매니저로 구성됨

 리소스 매니저 : 스케줄러 역할을 수행하고, 클러스터 이용률 최적화를 수행

 노드 매니저 : 노드 내의 자원을 관리하고, 리소스 매니저에게 전달 수행 및 컨테이너를 관리

 애플리케이션 마스터 : 리소스 매니저와 자원의 교섭을 책임지고, 컨테이너를 실행

 컨테이너 : 프로그램 구동을 위한 격리 환경을 지원하는 가상화 지원

 

7. 인메모리 처리

- 아파치 스파크(Apache Spark) : 하둡 기반 대규모 데이터 분산처리시스템으로 스트리밍 데이터, 온라인 머신러닝 등 실시간 데이터를 처리

 

8. 데이터 가공

- 피그(Pig) : 대용량 데이터 집합을 분석하기 위한 플랫폼으로 하둡을 이요하여 맵리듀스를 사용하기 위한 높은 수준의 스크립트 언어인 피그 라틴이라는 자체 언어를 제공

- 하이브(Hive) : 하둡 기반 DW 솔루션으로 SQL과 매우 유사한 HiveQL이라는 쿼리를 제공

 

9. 데이터 마이닝

- 머하웃(Mahout) : 하둡 기반으로 데이터 마이닝 알고리즘을 구현한 오픈소스로 분류, 클러스터링, 추천 및 협업 필터링, 패턴 마이닝, 회귀 분석, 진화 알고리즘 등 주요 알고리즘 지원

 

10. 실시간 SQL 질의

- 임팔라(Impala) : 하둡 기반의 실시간 SQL 질의 시스템으로 데이터 조회를 위한 인터페이스로 HiveQL을 사용하며, 수초 내의 SQL 질의 결과를 확인할 수 있으며, HBase와 연동이 가능

- 타조(Tajo) : 다양한 데이터 소스를 위한 하둡 기반의 ETL 기술을 이용해서 데이터 웨어 하우스에 적재하는 시스템

 

11. 워크플로우 관리

- 우지(Oozie) : 하둡 작업을 관리하는 워크플로우 및 코디네이터 시스템

 

12. 분산 코디네이션

- 주키퍼(Zookeeper) : 분산 환경에서 서버들 간에 상호 조정이 필요한 다양한 서비스를 제공하는 기술로 하나의 서버에서만 서비스가 집중되지 않도록 서비스를 알맞게 분산하여 동시에 처리

 

 

데이터 연동

스쿱(Sqoop)

: 하둡과 데이터베이스간의 데이터 연동 솔루션인 스쿱은 오라클, MySQL, PostgreSQL, 사이베이스 등 JDBC를 지원하는 대부분의 관계형 데이터베이스와의 연동을 지원한다

: HBase와 같은 일부 NoSQL 데이터베이스와도 연동 가능

: 스쿱은 데이터의 이동을 맵리듀스를 통해 처리하여 장애 허용 능력과 병렬 처리 기능을 제공

: 스쿱 스크립트의 Import 명령어를 이용하여 RDBMS의 데이터를 HDFS로 옮기고, Export 명령어를 이용하여 HDFS의 데이터를 RDBMS로 옮길 수 있음

: 스쿱을 통해 관계형 DB에서 하둡으로 데이터를 전송하는 스크립트

 1. 데이터를 가져올 데이터베이스 정보를 입력

 2. 가져올 데이터에 대한 SQL문을 입력

 3. 동시에 몇 개의 프로세스를 실행하여 데이터를 가져올지를 지정(프로세스를 많이 지정하면 데이터 전송 속도는 빠르지만 부하가 발생할 수 있으므로 적절한 개수를 지정)

 4. 데이터베이스의 키 칼럼을 입력

 5. 가져온 데이터를 저장할 하둡상의 경로를 지정

 

대용량 질의 기술

: 하둡은 저비용으로 대용량 데이터를 저장하고 신속하게 처리할 수 있는 시스템으로 이전에 비해 단순해졌지만 여전히 코딩이 필요하기 때문에 분석가에게는 어려움이 존재

: 이러한 이유로 사용자에게 친숙한 SQL이라는 질의 기술을 이요하여 하둡에 저장된 데이터를 쉽게 처리하고 분석할 수 있도록 해주는 하이브(Hive)가 등장해 널리 사용되고 있음

: 하둡과 하이브는 대용량 데이터를 배치 처리하는데 최적화 되어 있지만, 실제 업무에서는 데이터를 실시간으로 조회하거나 처리해야 하는 요구사항이 많다

: 실시간 조회 및 처리에 대한 제약을 극복하기 위해 실시간 SQL 질의 분석 기술인 SQL on 하둡이 등장하였음

 

SQL on 하둡 기술

- 아파치 드릴(Drill), 아파치 스팅거(Stinger), 샤크(Shark) : 인메모리 기반의 대용량 데이터 웨어하우스 시스템, 하이브와 호환되기 때문에 하이브 SQL 질의와 사용자 정의 함수를 사용할 수 있음, 아파치 타조(Tajo), 임팔라(Impala), 호크(HAWQ), 프레스토(페이스북에서 자체 개발)

'ADP > 필기 - 2과목' 카테고리의 다른 글

분산 컴퓨팅 기술  (0) 2023.08.14
분산 데이터 저장 기술  (0) 2023.08.14
데이터 통합 및 연계 기법  (0) 2023.08.13
EAI(Enterprise Application Integration)  (0) 2023.08.13
CDC(Change Data Capture)  (0) 2023.08.13

+ Recent posts