빅데이터 기술 요약
in Technical posts
Hadoop 생태계의 대략적 개요를 정리해봤습니다.
Hadoop
Hadoop은 HDFS(Hadoop Distributed File System) 및 Map-Reduce를 활용한 빅데이터 저장 및 처리 플랫폼입니다. 분산 환경에서 대규모 데이터를 효율적으로 관리하고 처리할 수 있도록 설계되었습니다.
HDFS (Hadoop Distributed File System)
- 기가바이트에서 페타바이트 단위의 거대한 용량의 데이터를 저장하고 프로세싱할 수 있는 분산 저장소입니다.
- RDBMS와 비교해 훨씬 큰 용량의 데이터를 다룰 수 있습니다.
- 복제 및 분산을 통해 큰 용량의 데이터를 효율적으로 관리합니다.
- Hive, Spark 등 도구로 데이터를 프로세싱할 수 있습니다.
Hadoop 생태계의 여러 프레임워크들
- HDFS: 분산 저장소
- Hive: SQL 기반 데이터 웨어하우스
- HBase: 분산 NoSQL 데이터베이스
Spark
Spark는 빅데이터 처리를 위한 클러스터 컴퓨팅 시스템입니다. Map-Reduce보다 빠르며, 실시간 데이터 처리 및 AI 학습에 적합합니다. 다양한 데이터 처리 작업을 지원합니다.
주요 특징
- 인메모리에서 빅데이터를 프로세싱합니다.
- 배치 데이터와 스트리밍 데이터를 모두 처리할 수 있습니다.
- SQL 구문, 머신러닝 기능을 제공하여 다양한 데이터 처리가 가능합니다.
- 공식 지원 언어: Python, SQL, Scala, Java, R
추천 도구
- pySpark
- Jupyter Notebook
Kafka
Kafka는 대규모 메시지 스트리밍을 위한 분산 시스템입니다. 실시간 데이터 피드를 관리하고, 다양한 소스에서 오는 데이터를 효율적으로 처리하여 다른 시스템으로 전송합니다.
주요 특징
- 오픈소스 분산 이벤트 스트리밍 플랫폼입니다.
- 배치 데이터는 HDFS와 Spark로 처리하고, 실시간 데이터는 Kafka로 처리합니다.
- 사기 감지 시스템(FDS - Fraud Detection System) 등 실시간 처리에 적합합니다.
데이터 처리 흐름
- Source App ➝ kafka ➝ Target App
- Producer: 데이터를 생성하고 Kafka에 전송합니다.
- Queue 역할 (Topics): Kafka가 데이터를 큐잉합니다.
- Consumer: 데이터를 소비하여 처리합니다.
Kafka의 활용
- 배치 데이터 처리는 기존 도구(HDFS, Spark)를 사용하지만, 빅데이터 실시간 처리에는 Kafka가 사용됩니다.
- 실시간 데이터 분석 및 처리에 최적화되어 있습니다.