Hadoop
하둡은 대용량의 데이터를 분산 처리할 수 있는 자바 기반의 오픈소스 프레임워크이다.
HDFS(Hadoop Distributed File System) 기반으로 맵리듀스 데이터 처리 방식에 의해 동작한다. 하둡2로 바뀌면서 Yarn으로 대체 되어 맵리듀스 API를 사용하지 않는 다양항 어플리케이션도 수용할 수 있게 되었다.
- HDFS: 대규모 데이터를 분산 저장 관리하기 위한 분산 파일 시스템으로, 데이터를 블록 단위로 나누어 분산된 서버에 저장한다.
- 맵리듀스: 대용량 데이터를 분산 처리하기 위한 목적으로 개발된 프로그래밍 모델이자 소프트웨어 프레임 워크로 맵(Map)과 리듀스(Reduce) 두 함수를 이용하여 데이터를 처리하도록 한다.
- Yarn: Yet Another Resource Negotiator의 약자로 하둡 클러스터의 리소스를 관리하고 스케줄링하는 하둡의 컴포넌트. 맵리듀스
Hive
데이터를 모델링하고 변환하고자 하는 경우 가장 많이 사용하는 데이터 웨어하우징용 솔루션이다. 맵리듀스 기반으로 데이터를 처리할 때 필요한 복잡한 코드 대신에 쿼리로 맵리듀스를 이용한 대부분의 기능을 수행할 수 있도록 하였다.
- Hive는 데이터베이스가 아닌 데이터 처리를 위한 배치 처리 구조이다.
- HiveQL 쿼리를 사용하여 데이터를 조회 분석할 수 있다.
- 쿼리를 맵리듀스로 변환하여 실행한다.
- Hive에서 만든 데이터 테이블은 Hive Meta Store라는 특별한 DB에 저장된다.
Spark
실시간성 데이터 처리에 대한 요구가 높아짐에 따라서 고속화된 대용량 데이터 처리를 가능하게 하였다. 대용량 메모리를 사용하여 인메모리 상에서 대용량 데이터를 처리 하여 반복적인 작업을 처리하는 경우 기존의 맵리듀스를 이용하는 방식보다 최소 1000배 이상 빠르게 데이터를 처리할 수 있게 하였다.
- 맵리듀스를 대체하여 Spark 상의 데이터 처리는 스크립트 언어를 사용할 수 있다.
- 하둡의 Yarn 위에 스파크를 얹고 실시간으로 처리가 필요한 데이터는 스파크를 통해서 처리하는 방식으로 아키텍처를 구성할 수 있다.