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

빅데이터 분석 - 개요 및 기술

dev_tina 2022. 9. 14. 09:39

7. 빅데이터 분석

  • 빅데이터 분석 개요
  • 빅데이터 분석에 활용되는 기술
  • 분석 파일럿 실행 1단계 - 분석 아키텍처
  • 분석 파일럿 실행 2단계 - 분석 환경 구성
  • 분석 파일럿 실행 3단계 - 임팔라를 이용한 데이터 실시간 분석
  • 분석 파일럿 실행 4단계 - 제플린을 이용한 실시간 분석
  • 분석 파일럿 실행 5단계 - 머하웃을 이용한 데이터 마이닝
  • 분석 파일럿 실행 6단계 - 스쿱을 이용한 분석 결과 외부 제공

빅데이터 분석 개요

  • 탐색 단계 : 데이터를 관찰하고 이해하는 과정
  • 분석 단계 : 탐색과 분석을 반복하며 의미 있는 데이터를 추출해 문제를 명확히 정의하고 해결하는 과정
  • 강력한 오픈소스 기술을 기반으로 수평적 확장이 가능해 저비용으로 선형적인 분석 성능 보장
  • 내부업무 시스템에서 발생했던 수년치 데이터를 외부 데이터와 쉽게 결합 가능

분석의 유형

기술 분석

  • 분석 초기 데이터의 특징을 파악하기 위해 선택, 집계, 요약등의 양적 기술 분석 수행

탐색 분석

  • 업무 도메인 지식을 기반으로 대규모 데이터셋의 상관관계나 연관성을 파악

추론 분석

  • 전통적인 통계분석 기법으로 문제에 대한 가설을 세우고 샘플링을 통해 가설을 검증

인과 분석

  • 문제 해결을 위한 원인과 결과 변수를 도출하고 변수의 영향도 분석

예측 분석

  • 대규모 과거 데이터를 학습해 예측 모형을 만들고, 최근의 데이터로 미래를 예측

 

빅데이터의 가치 P303 그림 7-2 빅데이터 분석 프로세스

  • Raw 데이터 => 정보(Information) => 통찰력(Insight) => 가치(Value)
  • 통찰력을 갖게 되는 단계에서 빅데이터 활용 효익 발생
  • 상품 및 서비스 개발, 마케팅 및 캠페인 지원, 리스크 관리 영역등의 주요 의사결정에 빅데이터 이용
  • 새로운 분석 주제와 가설들을 풍부하게 하고 신뢰도 높은 분석 결과를 도출 가능
  • 스마트카 빅데이터 분석에 SNS, 포털, 날씨, 뉴스, 위치 정보 등과 결합되면 차별화된 타겟 마케팅 가능
    • 포털과 블로그등의 게시판을 크롤링해서 자사/타사 브랜드 평판과 트랜드 분석으로 신제품 개발과 프로모션등에 활용
  • 스마트카의 상태 및 운행 이력 데이터와 외부의 날씨, 도로지형, 교통상황을 결합해 분석
    • 스마트카의 고장 및 결함에 대한 패턴과 원인을 찾아서 안전한 스마트카 서비스가 가능 해짐

빅데이터 분석에 활용할 기술

임팔라(Impala)

  • http://impala.apache.org
  • 하이브 : SQL On Hadoop 으로 MapReduce 대체, 배치성 분석
  • 임팔라 : 인메모리기반의 실시간 빅데이터 분석 질의가 가능
  • 구글 논문 드레멜(Dremel) -> 클라우데라 임팔라(Impala) 개발
  • Impalad : 하둡의 데이터노드에 설치되어 임팔라의 실행 쿼리에 대한 계획, 스케줄링, 엔진을 관리하는 코어 영역
  • Query Planner: 임팔라 쿼리에 대한 실행 계획 수립
  • Query Coordinator: 임팔라 잡리스트 및 스케줄링 관리
  • Query Exec Engine: 임팔라 쿼리를 최적화해서 실행, 결과 제공
  • Statesored: 분산 환경에 설치돼 있는 Impalad의 설정 정보 및 서비스 관리
  • Catalogd: 임팔라에서 실행된 작업 이력 관리 및 제공

임팔라 아키텍처

활용 방안

  • 하이브 쿼리를 임팔라 쿼리로 변경
  • 스마트카 데이터셋을 실시간 탐색
  • 하이브 쿼리 대부분 임팔라 쿼리와 호환
  • 하이브 대비 빠른 응답 속도 보장

 

제플린(Zeppelin)

  • http://zeppelin.apache.org
  • 데이터를 효과적으로 탐색 및 분석하기 위한 분석 및 시각화 툴 => R
    • R => Hadoop 직접 참조하거나 분산 병렬처리가 어려움
    • RHive, RHadoop, RHipe 같은 도구로 HDFS 병렬 처리 가능
    • 복잡도가 높아지고 안정적인 사용을 위해서 추가 비용 발생
  • 스파크를 기반으로 한 제플린 탄생
  • 국내 스타트 기업 NFLabp에서 주도
  • NoteBook : 웹상에서 제플린의 인터프리터 언어를 작성하고 명령 실행 및 관리 UI
  • Visualization: 인터프리터 실행 결과를 곧바로 웹상에서 다양한 시각화 도구로 분석해 볼 수 있는 기능
  • Zeppelin Interpreter: 데이터 분석을 위한 다양한 인터프리터를 제공
  • 스파크, 하이브, R, 카산드라, JDBC, 쉘등 필요시 인터프리터 추가 확장

활용 방안

  • 5개의 마트 데이터를 대상으로 제플린에서 스파크 SQL을 이용해 다양한 Ad-hoc 분석 수행
  • 그 결과를 제플린 시각화 기능을 이용해 다양하게 분석
  • 스파크ML을 이용해 머신러닝의 분류와 군집으로 스마트카의 이상징후 예측과 고객의 성향 분석 진행

참고 : Ad-hoc

 ('애드혹'에 대한 글')


 

머하웃(Mahout)

  • http://mahout.apache.org
  • Hadoop 생태계에서 머신러닝 기법을 이용해 데이터 마이닝을 수행하는 툴
  • Hadoop 분산 아키텍처를 바탕으로 텍스트 마이닝, 군집, 분류등과 같은 머신러닝 기반 기술 내재화
  • 추천(Recommendation): 사용자들이 관심을 가졌던 정보나 구매했던 물건의 정보를 분석해서 추천하는 기능
    • 사용자 기반 추천: 유사한 사용자를 찾아 추천
    • 아이템 기반 추천: 항목 간 유사성을 계산해서 추천 항목 생성

            - 예를 들어, 넷플릭스에서 마블 시리즈의 영화 중 n개를 본 사람은 마블 시리즈의 다른 영화를 볼 확률이 높다고 판단하여, 추천

            - 기업 입장에서는, 매출과 연결되기 때문에 많이 사용

  • 분류(Classification): 데이터셋의 다양한 패턴과 특징을 발견해 레이블을 지정하고 분류하는 기능
    • 주요알고리즘: 나이브 베이지안, 랜덤 포레스트, Canopy등 지원

             - 머신러닝에서 가장 많이 사용되는 것이 분류와, 폐기. (레이블 -> target)

  • 군집(Clustering): 대규모 데이터셋에서 새로운 특성으로 데이터의 군집들을 발견하는 기능
    • 주요알고리즘: K-Means, Fuzzy, C-Means, Canopy등
  • 감독학습(Supervised Learning): 학습을 위한 데이터셋을 입력해서 분석 모델을 학습시키는 머신러닝 기법
    • 학습된 분석 모델을 이용해 예측하고 최적화
    • 분류와 회귀 분석 기법
  • 비감독학습(Unsupervised Learning): 학습 데이터셋을 제공하지 않고 데이터의 특징적인 패턴을 발견하는 머신러닝 기법
    • 사람이 구분 및 그루핑하기 어려운 현상들을 자동으로 그루핑 하는데 사용
    • 군집 기법
  • 강화학습

○ 딥러닝과 강화학습의 차이

 

딥러닝과 강화학습은 기계학습에서 동등한 위치에 놓여있으며, 두 분야 모두 자율적으로 학습을 한다는 점에서 비슷하다. 이 둘의 차이점은 딥러닝의 경우, 훈련 데이터의 학습을 기반으로 새로운 데이터에 적용한다. 강화학습의 경우, 훈련 데이터 없이 시행착오를 통해 보상을 최대로하기 위해 지속적으로 행동을 조정하는 동적인 학습이다. 다시 정리하면, 딥러닝에서는 데이터를 준비하는 단계가 필수적이지만 강화학습에서는 agent와 환경과의 상호작용을 통해 학습을 하기 때문에 데이터를 준비하는 단계가 환경을 모델링하는 과정으로 치환이 된다. 

 

두 분야의 뿌리는 확실히 다르지만 또 상호배타적이라고 할 수 없다. 강화학습에서도 딥러닝의 사용은 보편적이기 때문이다. 즉, agent를 훈련하기 위해 딥러닝을 사용하는 경우가 존재한다. 어떤 상태를 입력으로 받아서 이 상태에 대한 최적의 액션이 무엇인지를 결정하는 과정에서 딥러닝 모델이 적용된다. 강화학습을 모델링하는데 있어서 시스템이 매우 복잡하지만 딥러닝을 이용할 경우 입력과 출력의 관계를 통해 복잡한 모델을 비교적 간략화 시키기 때문에 agent를 학습시키기 위해 딥러닝을 사용하게 된다.


활용 방안

  • 스마트카 Managed 영역에 적재된 "스마트카 상태 데이터"와 "운전자 운행 데이터"를 이용해 감독학습-분류, 비감독학습-군집 머신러닝 수행
  • 추천 기능을 활용해 "차량용품 구매 이력 데이터"를 분석
    • 스마트카 운전자 가운데 유사 그룹 간의 구매 선호도에 따라 차량용품 추천 작업
  • 스마트카 고객 마스터 정보를 대상으로 군집 분석을 진행해 고객군의 적정 개수 파악에 활용

스쿱(Sqoop)

  • http://sqoop.apache.org
  • RDBMS <=> 적재(import, export) <=> HDFS
  • Sqoop Client, Sqoop Server
  • Connector: 다양한 DBMS 접속 어댑터 및 라이브러리

스쿱 아키텍처

활용 방안

  • 하이브, 임팔라, 제플린, 머하웃등에서 분석한 결과를 외부 RDBMS로 Export 용도로 사용
  • 참고: 스쿱은 하둡 생태계에서 수집(Import) 기술로 분류