1. 빅 데이터
ㅇ 전통적인 데이터 처리 S/W로는 허용 시간 내에 저장,검색,처리,추출 할 수 없는
대용량 데이터 집합
ㅇ 빅데이터 특징
- 데이터 양이 방대함
- 데이터 형식이 비정형
- 데이터 종류가 매우 다양함
ㅇ 빅데이터 해석 기술의 특징
- 고성능, 대용량 병렬 처리를 위한 데이터 플랫폼 및 고급 분석 기술 들이 필요함
- 현재 기억장치가 저렴해지는 추세이므로 점점더 각광을 받음
2. 대규모 데이터 처리를 위한 프레임워크들 例
ㅇ Apache Hadoop : 다수 컴퓨터의 디스크에 데이터 저장하고 그 데이터를 추상화하여 연산 처리
ㅇ Apache Spark : 인메모리 처리(In-memory processing) 위주
- 데이터를 디스크가 아닌 주기억 장치에 불러모아 그곳에서 직접 처리하는 방식에 의함
3. 하둡 (Hadoop)
ㅇ 대규모 데이터 세트를, 분산 저장하고 병렬 처리하기 위한, 오픈 소스 빅데이터 프레임워크
- Apache Software Foundation에서 개발 및 유지 관리
- 대량의 데이터를 여러 대의 저가 서버로 분산해 저장하고, 동시에 처리할 수 있도록 설계됨
ㅇ 하둡의 특징
- 분산 저장과 분산 처리의 추상화 제공
. 사용자는 데이터가 어느 노드에 있는지 신경 쓰지 않아도 됨
.. 저장은, HDFS가,
.. 처리는, MapReduce나 Spark 같은 상위 엔진이 담당
- 고 확장성
. 서버를 점진적으로 추가하여 페타 바이트 단위까지 확장 가능
- 비용 효율성
. 범용 하드웨어 기반으로 대규모 시스템을 구성할 수 있어 구축 비용 절감
- 고 가용성과 내 결함성
. 노드 일부 장애 발생 시에도 데이터 다중 복제와 작업 재시도 매커니즘으로, 계속 동작 가능
. 데이터는 기본적으로 3중 복제 방식 사용
ㅇ 하둡의 핵심 구성 요소
- HDFS Hadoop Distributed File System
. 여러 노드에 데이터를 큰 블록 단위로 나누어 저장하는 분산 파일 시스템
. 데이터 복제를 통해 장애 발생 시에도 안정적 운영
. 대용량 파일 처리에 최적화 (스트리밍 방식 접근)
. 구성
.. NameNode : 메타데이터 관리
.. DataNode : 실제 데이터 블록 저장
- MapReduce
. 분산 환경에서 대규모 데이터를 병렬 처리하는 프로그래밍 모델
.. Map 단계 : 데이터를 분할하고 키 기반 중간 결과 생성
.. Reduce 단계 : 중간 결과를 집계,정리
. 장점 : 단순하고 내결함성 강함
. 단점 : 반복 계산 또는 메모리 중심 계산에 비효율적 → Spark 등 후속 기술 등장
- YARN (Yet Another Resource Negotiator)
. 하둡 클러스터의 자원 관리 및 작업 스케줄링 시스템
. MapReduce뿐 아니라 Spark, Flink 등 다양한 분산 처리 엔진을 함께 운영할 수 있도록 함
. 구성
.. ResourceManager : 전체 자원 관리
.. NodeManager : 개별 노드 자원 모니터링
- Hadoop Common
. 하둡의 다양한 컴포넌트가 공통 사용하는 라이브러리, 유틸리티, 자바 기반 핵심 모듈 제공
. 구성 요소 간 통신, I/O, 파일 시스템 인터페이스 등을 포함