Tech/Bigdata Platform

Apache Hadoop, Spark, Kafka, Airflow 기본 개념

data_start_ 2024. 12. 12. 16:02

Big data technologies


출처 : https://www.linkedin.com/pulse/100-open-source-big-data-ml-architecture-papers-sequel-anil-madan/

Apache 소프트웨어 재단이란?

ChatGPT의 답변

아파치 소프트웨어 재단(Apache Software Foundation, ASF)은 오픈소스 소프트웨어를 개발, 유지보수, 관리하는 비영리 단체입니다. 
아파치 소프트웨어 재단은 1999년에 설립되었으며, 
오픈소스 프로젝트의 개발과 커뮤니티 활동을 지원하고 이를 통해 다양한 소프트웨어를 제공합니다.

ASF는 전 세계적인 개발자들과 기업들의 참여를 유도하고, 
오픈소스 프로젝트의 개발과 유지보수를 위한 인프라 및 지원을 제공합니다. 
ASF의 목표는 자유롭게 사용, 수정, 배포할 수 있는 고품질의 오픈소스 소프트웨어를 개발하여 
개발자들과 사용자들에게 제공하는 것입니다.

ASF는 다양한 프로젝트를 관리하며, 
그 중에서도 가장 유명한 것은 아파치 HTTP 서버 (Apache HTTP Server)입니다. 
아파치 HTTP 서버는 인터넷 상에서 가장 널리 사용되는 웹 서버 소프트웨어로, 
웹 서비스의 핵심 구성 요소로 자리 잡고 있습니다. 
ASF는 이외에도 아파치 톰캣(Apache Tomcat), 아파치 하둡(Apache Hadoop), 
아파치 스파크(Apache Spark) 등 수많은 오픈소스 프로젝트를 관리하고 있습니다.

ASF는 개방성, 협력, 커뮤니티, 투명성, 기술적 우수성 등의 가치를 중요시하며, 
오픈소스 소프트웨어 생태계의 발전과 지속 가능성을 추구합니다. 
ASF는 커뮤니티 기반의 개발 모델을 채택하여 다양한 개발자들이 참여하고 기여할 수 있는 
환경을 제공하고 있습니다. 
이를 통해 혁신적인 소프트웨어의 개발과 성공적인 프로젝트 운영을 이루어내고 있습니다.

1.Apache Hadoop

  • 하둡이란 ? 빅데이터 스토리지를 분산 방식으로 관리하고 병렬로 처리하는 프레임워크.
  • 프로그래밍 언어 : 자바
  • 최초 출시일 : 2006년 4월
  • 등장 배경 : 급증하는 빅데이터를 보다 빠르고 안정적으로 처리하기 위한 요구에 따라 등장함. (상용 하드웨어 클러스터를 사용하여 방대한 양의 데이터를 효율적으로 저장하고 처리)
    출처 : 구글 클라우드 하둡
  • 주요 3가지 구성 요소
    • HDFS (Hadoop 분산 파일 시스템) : Storage unit (데이터를 클러스터의 노드에 저장되어 있는 여러 블록으로 분할)
    • MapReduce : 대량의 데이터를 단일 시스템에서 처리할 때 발생하는 비효율을 해결해줌. 다양한 데이터를 여러 부분으로 분할하고 각기 다른 데이터 노드에서 개별적으로 처리하고 개별 결과를 집계하여 최종 출력을 제공함. (로드 밸런싱을 개선함)
    • YARN (Yet Another Resource Negotiator) : 클러스터에서 컴퓨팅 리소스를 관리하고 실행.

Q. 하나의 데이터 노드가 충돌하면 특정 데이터를 잃게 되는가?
-> No, HDFS는 데이터의 복사복을 만들어 여러 시스템에 저장함. (Block A의 복제본이 다른 노드에 저장됨)
-> 하나의 데이터 노드가 충돌하더라도 데이터가 손실되지 않고, 데이터를 저장한 후 HDFS 내결함성을 만드는 복제 방법
출처 : Simplilearn 유튜브

2.Apache Spark

  • 프로그래밍 언어 : 파이썬, 자바, 스칼라, R
  • 발표일 : 2014년 5월
  • 목표 : 대규모 데이터 처리를 위한 빠른 범용 클러스터 프레임워크를 제공하기 위함.
    (하둡에서 가장 보편적인 데이터 처리 방식인 MapReduce의 한계를 극복)
  • 특징
    • RDD : 컴퓨터 클러스터 전체에 분할된 읽기 전용 개체 모음, 전적으로 메모리에서 처리
    1. 텍스트 파일
    2. SQL DB
    3. NoSQL DB
    4. HDFS 클라우드 저장소
    • 메모리 내 처리 덕분에 처리 속도가 빠름. (거의 실시간으로 데이터 처리를 할 수 있음)
    • 프로그래밍 가능성이 매우 유연함.
    • 고급 분석이 가능 (SQL, 머신러닝, 그래프)

출처: nullQueries 유튜브

3.Apache Kafka

  • 카프카란? 분산 이벤트 저장소 및 스트림 처리 플랫폼
  • 프로그래밍 언어 : 자바, 스칼라
  • 발표일 : 2011년 1월
  • 목표 : 실시간 데이터 피드를 처리하기 위한 통합되고 처리량이 많고 대기 시간이 짧은 플랫폼을 제공하는 것을 목표로 함.
  • 특징
    • 실시간 데이터의 대규모 파이프라인을 확장할 수 있는 분산 이벤트 스트리밍 플랫폼
    • 스트리밍 데이터 애플리케이션에 이상적임.

출처 : Fireship 유튜브

4.Apache Airflow

  • 에어플로란? 워크플로를 작성, 예약 및 모니터링하기 위한 오픈 소스 플랫폼
  • 프로그래밍 언어 : 파이썬
  • 발표일 : 2015년 6월

출처 : Qubole 유튜브

참고자료

  1. 위키백과 아파치 하둡
  2. 위키백과 아파치 스파크
    2-1. 구글클라우드 스파크
    2-2. geeksforgeeks.org
  3. 위키백과 아파치 카프카
  4. 위키백과 아파치 에어플로우