( 출처 : 연세대학교 데이터베이스 시스템 수업 (CSI6541) 강의자료 )

Chapter 6. Introduction to Hadoop

(1) 3V

  • Volume (크기)
    • 분산 컴퓨팅을 활용
  • Velocity (속도)
    • 빠른 속도로 데이터가 생성됨
    • 실시간 처리 기술이 요구됨
    • 장기적이고 전략적인 차원에서의 데이터 접근성이 요구됨
  • Variety (다양성)
    • 정형(structured), 반정형(unstructured)


(2) Handling Big data

  • Distributed File Systems ( ex. Hadoop )
  • NoSQL ( ex. Redis, RocksDB )


(3) Apache Hadoop

Hadoop = (1) 분산 저장 + (2) 분산 처리

  • (1) 분산 저장 (HDFS)
  • (2) 분산 처리 (Map Reduce)

  • for 대용량 데이터 “분산 처리”
  • java 기반의 open-source framework


Advantages of Hadoop

  • (1) for 비정형 데이터
    • 정형 데이터 : 기존 RDBMS이 good
    • 비정형 데이터 : RDBMS에 저장되기엔 “저장 공간 낭비가 심함”
  • (2) 오픈소스 & 경제적 효율성
    • 라이선스 비용 X
    • 저장공간 증대 위한 장비 필요 X
  • (3) 손쉬운 데이터 복구
    • 여러 개의 데이터 복제본을 저장


(4) Hadoop Ecosystem

core project : 분산 저장 (HDFS) & 분산 처리 (Map Reduce)

etc project : ….

figure2


(5) HDFS

  • Hadoop Distributed File Systems (HDFS)
  • block-based DFS
    • file stored in HDFS are divided into blocks of certain size
    • these blocks are stored on distributed server
    • GOOD for millions of large files
    • POOR for billions of smaller files
  • high scalability
  • when saving blocks, stores a replica of 3 blocks (by default)


(6) HDFS block replication

figure2


(7) HDFS architecture

Master-slave architecture

  • Name node (=master)
    • manages meta-data of HDFS
    • allows client to access HDFS files, stored in Data Nodes
  • Data nodes (=slave)

figure2

figure2


(8) Secondary NameNode

NameNode generates FsImage& EditLogto persist in-memory metadata

  • EditLog
    • file that records all changes to meta-data in HDFS
    • stored as a file on local filesystem of primary NameNode
  • FsImage
    • snapshot of HDFS
    • Namespace, block mapping information

\(\rightarrow\) both are stored as a file on local filesystem of primary NameNode


(9) MapReduce

  • 대규모 분산 컴퓨팅, 혹은 단일 컴퓨팅 환경에서 대량의 데이터 분석을 병렬처리하기 위해!
  • 2개의 메소드로 구성
    • (1) 맵 (map)
    • (2) 리듀스 (reduce)
  • (1) 맵 (map)
    • input : (key, value)로 구성된 리스트 1
    • process : 정의된 프로세스를 처리함
    • output : (key, value)로 구성된 리스트 2
  • (2) 리듀스 (reduce)
    • input : (key, value)로 구성된 리스트 2
    • process : 집계 연산 수행
    • output : (key, value)로 구성된 리스트 3


Examples :

figure2


(10) ACID theorems for RDBS

  • Atomicity (원자성)
    • 시스템에서 한 트랜잭션의 연산들이 모두 성공하거나, 반대로 전부 실패되는 성질
    • 작업이 모두 반영되거나 모두 반영되지 않음으로서 결과를 예측할 수 있어야 한다
  • Consistency (일관성)
    • 하나의 트랜잭션 이전과 이후, 데이터베이스의 상태는 이전과 같이 유효해야
    • 트랜잭션이 일어난 이후의 데이터베이스는 데이터베이스의 제약이나 규칙을 만족해야
  • Isolation (격리성, 고립성)
    • 모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야 한다는 뜻
    • 실제로 동시에 여러 개의 트랜잭션들이 수행될 때, 각 트랜젝션은 고립(격리)되어 있어 연속으로 실행된 것과 동일한 결과를 나타낸다
  • Durability (지속성)
    • 하나의 트랜잭션이 성공적으로 수행되었다면, 해당 트랜잭션에 대한 로그가 남아야하는 성질
    • 런타임 오류나 시스템 오류가 발생하더라도, 해당 기록은 영구적이어야 한다는 뜻

Tags:

Categories: ,

Updated: