본문 바로가기

Hadoop/빅데이터 파일럿 프로젝트

탐색 파일럿 실행 1단계 - 아키텍처

 


  • 빅데이터 탐색 개요
  • 빅데이터 탐색에 활용되는 기술
  • 탐색 파일럿 실행 1단계 - 탐색 아키텍처
  • 탐색 파일럿 실행 2단계 - 탐색 환경 구성
  • 탐색 파일럿 실행 3단계 - 탐색 기능 구현
  • 탐색 파일럿 실행 4단계 - 탐색 기능 테스트

빅데이터 탐색 개요

  • 탐색 영역은 적재된 데이터를 가공하고 이해하는 단계
  • 데이터 이해 => 데이터들의 패턴, 관계, 트렌드 찾기 => 탐색적 분석(EDA:Exploratory Data Analysis)
  • 탐색 과정은 분석에 들어가기에 앞서 빅데이터의 품질과 인사이트를 확보하는 매우 중요한 단계
  • 비정형 데이터를 정교한 후처리 작업(필터링, 클린징, 통합, 분리 등) => 정형화 데이터
  • 탐색 결과는 곧 바로 분석 마트를 위한 기초데이터로 활용
  • 이런 일련의 처리/탐색, 분석/응용 과정 => 빅데이터 웨어하우스

데이터 웨어하우스(DW: Data Warehouse)

  • 운영 시스템과 연계하여 의사 결정 지원에 효과적으로 사용 될 수 있도록 다양한 운영 시스템으로부터 추출, 변환, 통합되고 요약된 읽기 전용 데이터베이스

데이터 마트(Data Mart)

  • 전사적으로 구축된 데이터웨어하우스로부터 특정 주제, 부서 중심으로 구축된 소규모 단일 주제의 DW

빅데이터 탐색에 활용할 기술

  • 하둡 초창기에는 맵리듀스(MapReduce) 사용, 복잡도가 높은 프로그래밍(Java) 기법 필요
  • 빅데이터 접근의 어려움 => 페이스북에서 SQL과 유사한 하이브(Hive) 개발

하이브(Hive) SQL on Hadoop

  • http://hive.apache.org
  • 하둡 기반 적재된 데이터 탐색/가공 도구
  • SQL과 매우 유사한 방식으로 하둡 데이터에 접근
  • CLI : 하이브 쿼리 입력 및 실행
  • JDBC/ODBC Driver: 다양한 DB와 하이브 쿼리 연결 드라이버
    • ODBC Driver : 언어에 국한되지 않고 오픈되서 쓰인다. 
  • Query Engine: 하이브 QL => MapReduce
  • MetaStore: 하이브에서 사용하는 테이블의 스키마 정보를 저장 및 관리
  • CLI/웹콘솔 => QL 작성 => QE의 SQL 파서 => MapReduce 프로그램 => 분산 실행
    • MapReduce를 자동으로 분산 실행
  • 하이브를 이용해 스마트카 데이터셋을 다양한 각도로 탐색 및 가공
  • QL로 스마트카 데이터 조회, 결합, 분리, 변환, 정제 => 스마트카 DW => 스마트카 DM
    • 스마트카 Data Warehouse를 만들고 최종목적은 Data Mart 만들기
  • 적재 Data => 하이브 External(빅데이터 레이크) => 정제 => Managed 영역 => 각 영역별 Mart
  • 빅데이터 레이크 영역: 플럼, 스톰등에서 수집한 데이터가 모이는 곳
  • 유사 프로젝트 : Pig
    • 하이브와 Pig의 용도가 같다.
    • SQL을 배운 상태라면 하이브가 훨씬 사용하기 용이하다. Pig는 관련 쿼리를 또 익혀야 하기 때문

스파크(Spark)

  • http://spark.apache.org
  • 하이브는 QL로 접근성은 높였지만 맵리듀스 코어 그대로 사용하여 성능이 떨어짐(반복적 작업시)
  • 고성능 인메모리 분석 => 하이브, 피그는 디스크 I/O
    • 스파크는 , "메모리 하둡"이라고도 불린다.
    • 하둡에서 개발을 하려면 최종적으로는 Spark를 사용하고, 스칼라 언어를 디폴트로 사용한다
  • Spark SQL, Spark 스트리밍, Spark 머신러닝등 작업시 빠른 성능
  • Spark RDD : 스파크 프로그래밍의 기초 데이터 모델
  • Spark SQL : SQL 방식으로 RDD 프로그래밍 지원
  • Spark 스트리밍 : 스트리밍 데이터를 실시간 처리
  • Spark MLib : 스파크에서 머신러닝 프로그래밍(군집, 분류, 추천등) 지원
  • 파이썬, 자바, 스칼라, SQL등의 클라이언트 라이브러리 제공(디폴트는 스칼라)
  • 스파크엔진은 대규모 분산 노드에서 최적의 성능
  • HDFS, HBase, 카산드라등의 데이터 소스 연결 이용
    • 카산드라 =>  noSQL 기반
  • 스파크쉘에서 스파크-SQL API를 이용해 ''스마트카 마스터 '' 조회 및 정제 작업

우지(Oozie)

- 워크플로우를 만드는 것이 핵심

- EX) 하루에 몇 시에 어떤 데이터가 들어오면, 이런 일을 해!

  • http://oozie.apache.org
  • 하이브나 스파크로 처리/탐색/분석하는 과정은 복잡한 선후행 관계를 맺고 반복 진행됨
  • 반복적이고 복잡한 후처리 잡에 대한 시작,처리,분기,종료의 Action 워크플로우 정의
  • 작성된 워크플로우는 RDBMS에서 저장
  • 우지 서버에 있는 Coordinator 가 우지에 등록된 워크플로를 스케줄링
  • Oozie Workflow: 주요 액션에 대한 작업규칙과 플로우 정의
  • Oozie Client: 워크플로우를 Server에 전송하고 관리하기 위한 환경
  • Oozie Server: 워크플로우 정보가 잡(Job)으로 등록되어 잡의 실행,중지,모니터링 관리
  • Control 노드 : 워크플로의 흐름을 제어하기 위한 Start, End, Decision 노드등 기능 제공
  • Action 노드: 잡의 실제 수행 태스크를 정의하는 노드 , 하이브,피그, 맵리듀스등 액션으로 구성
  • 하이브QL의 External => Managed => Mart 과정의 약속된 스케줄링을 우지 워크플로우로 구성

휴(Hue)

- 통합 Tool

  • http://gethue.com
  • 다양한 하둡 에코시스템의 기능들을 웹 UI로 통합 제공
  • HDFS, HBase, 하이브, 임팔라는 위한 웹에디터 제공
  • Job Designer: 우지의 워크플로 및 Coordinator 를 웹 UI에서 디자인
  • Job Browser: 등록한 잡의 리스트 및 진행 상황과 결과등 조회
  • Hive Editor: 하이브 QL을 웹 UI에서 작성
  • Pig Editor: Pig Script을 웹 UI에서 작성
  • HDFS Browser: 하둡의 파일시스템을 웹 UI에서 탐색 관리
  • HBase Browser: HBase의 HTable을 웹 UI에서 탐색 관리
  • 웹에디터를 이용해 '스마트카 상태 데이터', '스마트카 운전자 운행 데이터' 탐색 수행
  • '스마트카 마스터 데이터'와 '스마트 차량 물품 구매이력' 임포트 작업 수행
  • 휴의 Job Designer를 이용해 Oozie 의 워크플로 5개의 주제 영역별 작성 및 실행

탐색 파일럿 실행 1단계 - 탐색 아키텍처

 

탐색 요구사항

요구사항 1

  • 차량의 다양한 장치로부터 발생하는 로그 파일을 수집해서 기능별 상태를 점검

요구사항 2

  • 운전자의 운행 정보가 담긴 로그를 실시간으로 수집해서 주행 패턴을 분석

 

요구사항 구체화 및 분석

적재된 데이터는 하이브의 데이터 웨어하우스로 관리

  • 하이브의 데이터 웨어하우스기능 이용
  • 초기 HDFS 적재영역(External) => Managed => Mart 단계적 구성

데이터 마트 구축에 필요한 데이터를 추가 구성

  • HDFS 명령어로 '스마트카 마스터 데이터'와 '스마트 차량 물품 구매이력' External에 추가 적재

하이브의 데이터 웨어하우스의 이력성 데이터들을 일자별로 관리

  • 데이터 웨어하우스의 External 영역은 작업 처리일 기준으로 파티션 구성
  • Managed 영역은 데이터 생성일 기준으로 파티션닝

분석 마트가 만들어지는 일련의 과정들을 하나의 워크플로우로 만들어 관리

  • Oozie를 사용해 하이브 QL을 Job Designer에 등록 워크플로를 만들고 스케줄러에 등록 및 관리

분리 탐색한 데이터는 외부 애플리케이션이 빠르게 접근하고 조회할 수 있어야 한다

  • 휴의 Job Designer를 이용해 Oozie 의 워크플로 5개의 주제 영역별 작성 및 실행

최종 마트로 만들어질 데이터셋들은 주제 영역별로 구성

  1. 스마트카의 상태 모니터링 정보
  2. 스마트카의 운전자의 운행 기록 정보
  3. 이상 운전 패턴 스마트카 정보
  4. 운전자의 차량용품 구매 이력 정보
  5. 긴급 점검이 필요한 스마트카 정보

 

탐색 아키텍처 P 230 참고

휴 Hive Editor로 External 조회

  • Hive Editor를 이요해 SQL과 유사한 방식으로 조회
  • HBase에 적재된 데이터도 Hive HBase 핸들러 이용 RDBMS 처럼 데이터 탐색

External과 HBase 적재된 데이터 작업일자 기준 후처리 작업

  • Managed 영역에 스마트카 로그 생성일자 기준으로 2차 적재
  • External 영역 => 하이브 QL => Managed 영역

Managed에 만들어진 데이터는 탐색적 분석에 활용

  • 데이터가 구조화, 정형화 데이터로 전환된 상태
  • 의사결정에 필요한 다양한 데이터 추출 단계
  • 우지의 워크플로를 이용 해 프로세스화 및 자동화