Seminar/Open Tech-net Submit

오픈 소스를 활용한 빅데이터 활용 방법 - 정재화

MB Kyle KWON 2013. 3. 3. 01:00

Hadoop : 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈 소스 프레임워크

1. Distributed File System

2. Distributed/Parallel Computing Framework

3. Open Source Project




Hadoop 에코 시스템

  • Avro : 멀티 플랫폼간 데이터 호환 Serialization 도구
  • Cassandra : DHT기반의 분산 데이터 관리 시스템. Hadoop은 사용하지 않고 로컬디스크 이용
  • Chukwa : 분산 환경에서 로그를 수집하기 위한 시스템. 저장소로 HDFS를 이용하고 로그분석을 위해 Map/Reduce를 이용
  • Hama : Map/Reduce 방식이 아닌 BSP(Bulk Synchronous Parallel) 방식의 컴퓨팅 플랫폼
  • HBase : HDFS에 데이터 파일을 저장하는 분산 데이터 관리 시스템
  • Hive : SQL과 비슷한 스크립트 질의를 이용해 HDFS에 저장된 데이터를 Map/Reduce로 분석하는 도구
  • Impala : Hive 질의 문법을 지원하는 준 실시간 질의 실행 플랫폼
  • Mahout : Hadoop 기반 Machine Library
  • Oozie : Hadoop Workflow 엔진
  • Pig : Hive와 유사하게 스트립트 질의를 이용해 HDFS에 저장된 데이터를 Map/Reduce로 분석하는 도구. 단순 스크립트가 아닌 반복문, 제어문, 변수 등 사용 가능
  • Zookeeper : 분산 환경을 관리하는 분산 코디네이터




대용량 파일 시스템

DAS

NAS

SAN

GFS(Google File System) : 구글에서 개발된 파일 시스템으로 많은 구글의 서비스에서 이용


소프트웨어는 공개하지 않고 논문만 공개

http://www.cs.rochester.edu/meeting/sosp2003/papers/p125-ghmawat.pdf



다음과 같은 설계원칙

  • 저가형 서버로 구성된 환경으로 서버의 고장이 번번히 발생할 수 있다고 가정
  • 대부분의 파일은 대용량 파일로 가정
  • 작업 부하는 연속적으로 많은 데이터를 읽는 연산이거나 임의의 영역에서 적은 데이터를 읽는 연산
  • 파일에 대한 쓰기 연산은 주로 순차적으로 데이터를 추가하는 연산. 파일에 대한 수정은 드물게 발생
  • 여러 클라이언트에서 동시에 동일한 파일에 데이터를 추가하는 환경에서 동기화 오버헤드를 최소화할 수 있는 방법 필요
  • 낮은 응답 지연 시간보다 높은 처리율이 좀 더 중요



HDFS(Hadoop Distributed File System)
1. Very Large Scale Distributed File System
    • 10K node, 100 million files, 10 PB(1PB = GB)

2. Use Commodity Hardware

    • Self-Healing : failover, recovery, backup
    • 서버 장애를 일반적인 상황이라고 가정

3. Optimized for batch processing

    • 주로 저장 후 읽기 윚의 데이터 저장
    • 1 File = n개의 64MB size block으로 split
    • 각 block은 서로 다른 node에 분산저장

4. POSIX 표준 API는 지원하지 않음

    • 자체 API 지원(Java, C)



HDFS 컴포넌트

1. NameNode

2. Secondary NameNode

3 .DataNode

4. Client Library




Map/Reduce

Map : 키와값으로 키와 값으로 구성된 목록을 만들어 준다.

Reduce : 키와 목록으로 다시 목록을 만들어 준다.




Hive




HiveQL