BigData

  • 빅데이터의 공통적 속성 3V 데이터의 양(Volume), 데이터 생성 속도(Velocity), 형태의 다양성(Variety)
  • 빅데이터의 특징은 3V로 요약하는 것이 일반적이다. 즉 데이터의 양(Volume), 데이터 생성 속도(Velocity), 형태의 다양성(Variety)을 의미한다(O’Reilly Radar Team, 2012). 최근에는 가치(Value)나 복잡성(Complexity)을 덧붙이기도 한다.

  • 빅데이터의 새로운 V - 정확성(Veracity)
  • 빅데이터의 새로운 V - 가변성(Variability)
  • 빅데이터의 새로운 V - 시각화(Visualization

  • 5V Volume 크기, Variety 다양성, Velocity 속도, Veracity 정확성, Value 가치

데이터 생성 데이터 수집 데이터 저장 데이터 가공 데이터 분석 데이터 스토리텔링, 시각화

문제 정의 데이터 수집 데이터 전처리 데이터 모델링 시각화 및 탐색

데이터 마이닝 - 패턴인식, 인공지능 기법등을 이용 텍스트 마이닝 - 문서상의 유사성을 수치화 소셜네트워크 분석 - 입소문의 중심이나 허브 역할을 하는 사용자를 찾음, 사용자의 영향력을 찾음 평판분석 - 오피니언 마이닝, 선호도를 판별하는 기술 군집분석 - 유사군 분류

의사결정 트리 (Decision Tree) 절차

  • Define Problem
  • Collect training Data

  • Extract Data : 데이터에서 중요한 feature(속성)를 뽑아내서 tree의 결정 기준으로 삼는 과정
  • Build a tree

  • Deploy machine

  • Test with test data

Entropy

  • Low Entropy <-> High Entropy

의사결정 트리 (Decision Tree) 알고리즘

  • ID3 알고리즘

하둡(Hadoop)

하둡 분산형 파일시스템(Hadoop Distributed FileSystem, HDFS) 하둡 네트워크에 연결된 기기에 데이터를 저장하는 분산형 파일시스템 맵리듀스(MapReduce) 대용량의 데이터 처리를 위한 분산 프로그래밍 모델, 소프트웨어 프레임워크 맵리듀스 프레임워크를 이용하면 대규모 분산 컴퓨팅 환경에서, 대량의 데이터를 병렬로 분석 가능 프로그래머가 직접 작성하는 맵과 리듀스 라는 두 개의 메소드로 구성 맵 흩어져 있는 데이터를 연관성 있는 데이터들로 분류하는 작업(key, value의 형태) 리듀스 Map에서 출력된 데이터를 중복 데이터를 제거하고 원하는 데이터를 추출하는 작업.

H카탈로그 (HCatalog): 하둡 데이터용 테이블 및 스토리지 관리 서비스 피그 (Pig): 맵리듀스용 프로그래밍 및 데이터 플로우 인터페이스 하이브 (Hive): SQL과 유사한 언어인 하이브Q(HiveQL)을 이용해 하둡 데이터 쿼리를 생성하는 데이터 웨어하우징 솔루션

Zookeeper 분산환경에서 서버간의 상호 조정이 필요한 다양한 서비스를 제공하는 시스템이다. 분산 동기화를 제공하고 그룹 서비스를 제공하는 중앙 집중식 서비스로 알맞은 분산처리 및 분산 환경을 구성하는 서버 설정을 통합적으로 관리 한다. 분산 리소스관리 YARN 작업 스케줄링 및 클러스터 리소스 관리를 위한 프레임워크로 맵리듀스, 하이브, 임팔라, 스파크 등 다양한 애플리케이션들은 얀에서 작업을 실행한다. Mesos (클라우드환경에대한 리소스관리) Mesos는 Linux커널과 동일한 원칙을 사용하며 컴퓨터에 API(예:Hadoop,Spark,Kafka,Elasticsearch)를 제공한다 페이스북, 트위터, 이베이등 다양한 기업들이 메소스 클러스터 자원을 관리하고 있다.

데이터저장 HBase (분산 데이터베이스) HBase는 구글 Bigtable을 기반으로 개발된 비관계형 데이터베이스이며, Hadoop및 HDFS위에 Bigtable과 같은 기능을 제공하게 된다. 네이버 라인 메신져에 HBase를 적용한 시스템 아키텍쳐를 발표 하기도 했다. HDFS (분산파일데이터저장) 애플리케이션 데이터에 대한 높은 처리량의 액세스를 제공하는 분산 파일 시스템 Kudu (컬럼기반 스토리지) 컬럼기반 스토리지로 하둡 에코 시스템에 새로 추가되어 급변하는 데이터에 대한 빠른 분석을 위해 설계되었다. 클라우데라에서 시작된 프로젝트로, 15년말 아파치 인큐베이션 프로젝트로 선정 되었다.

데이터수집 Chukwa Chukwa는 분산 환경에서 생성되는 데이터를 안정적으로 HDFS에 저장하는 플랫폼이다. 대규모 분산 시스템을 모니터링 하기 위한 시스템으로, HDFS및 MapReduce 에 구축되어 수집된 데이터를 최대한 활용하기 위한 모니터링 및 유연한 툴킷을 포함한다. Flume Flume은 많은 양의 데이터를 수집, 집계 및 이동하기위한 분산형 서비스이다. Scribe 페이스북에서 개발한 데이터 수집 플랫폼이며, Chukwa와 다르게 데이터를 중앙서버로 전송하는 방식이며, 최종 데이터는 다양한 저장소로 활용할 수 있다. Kafka 카프카는 데이터 스트림을 실시간으로 관리하기 위한 분산 시스템으로, 대용량 이벤트 처리를 위해 개발 되었다. 데이터처리 Pig 하둡에 저장된 데이터를 맵리듀스 프로그램을 만들지 않고 SQL과 유사한 스크립트를 이용해 데이터를 처리, 맵리듀스 API를 매우 단순화한 형태로 설계 되었다 . Mahout 분석 기계학습에 필요한 알고리즘을 구축하기위한 오픈소스 프레임워크이며, 클러스터링, 필터링, 마이닝, 회귀분석 등 중요 알고리즘을 지원해 준다 . Spark 대규모 데이터 처리를 위한 빠른 속도로 실행시켜 주는 엔진이다. 스파크는 병렬 애플리케이션을 쉽게 만들수 있는 80개 이상의 고급 연산자를 제공하며 파이썬,R등에서 대화형으로 사용할 수 있다. Impale 임팔라는 하둡기반 분산 엔진으로, 맵리듀스를 사용하지 않고 C++로 개발한 인메모리 엔진을 사용해 빠른 성능을 보여준다. Hive 하둡기반 데이터 솔루션으로, 페이스북에서 개발한 오픈소스로 자바를 몰라도 데이터분석을 할수 있게 도와 준다. SQL과 유사한 HiveQL이라는 언어를 제공하여 쉽게 데이터 분석을 할 수 있게 도와 준다. MapReduce MapReduce 는 대용량 데이터를 분산 처리 하기위한 프로그램으로 정렬된 데이터를 분산처리Map하고 이를 다시 합치는 Reduce 과정을 거친다.하둡에서 대용량 데이터 처리를 위한 기술중 큰 인기를 누리고 있다.

하둡(Hadoop) 구성 요소

Hadoop Common
    하둡의 다른 모듈을 지원하기 위한 공통 컴포넌트 모듈
Hadoop HDFS
    분산저장을 처리하기 위한 모듈
    여러개의 서버를 하나의 서버처럼 묶어서 데이터를 저장
Hadoop YARN
    병렬처리를 위한 클러스터 자원관리 및 스케줄링 담당
Hadoop Mapreduce
    분산되어 저장된 데이터를 병렬 처리할 수 있게 해주는 분산 처리 모듈
Hadoop Ozone
    하둡을 위한 오브젝트 저장소

하둡의 장단점

장점
    오픈소스로 라이선스에 대한 비용 부담이 적음
    시스템을 중단하지 않고, 장비의 추가가 용이(Scale Out)
    일부 장비에 장애가 발생하더라도 전체 시스템 사용성에 영향이 적음(Fault tolerance)
    저렴한 구축 비용과 비용대비 빠른 데이터 처리
    오프라인 배치 프로세싱에 최적화
단점
    HDFS에 저장된 데이터를 변경 불가
    실시간 데이터 분석 같이 신속하게 처리해야 하는 작업에는 부적합
    너무 많은 버전과 부실한 서포트
    설정의 어려움