본문 바로가기
data processing/spark

spark 소개

by nothing-error 2023. 1. 24.

Spark 구성

 

1. Apache Spark란?

아파치 스파크(Apache Spark)는 빅데이터 처리 및 분석에 사용되는 오픈 소스 분산 컴퓨팅 시스템이다. 암시적 데이터 병렬 및 내결함성을 사용하여 전체 클러스터를 프로그래밍하기 위한 인터페이스를 제공한다. 스파크는 데이터 처리, 머신러닝, 그래프 처리 등 다양한 작업에 활용할 수 있다. 빠르고 범용적으로 설계되었으며, 하둡 분산 파일 시스템(HDFS), 아파치 카산드라, 아파치 HBase를 포함한 다양한 형식으로 저장된 데이터와 함께 작동할 수 있다.

 

2. Apache Spark  주요 특징

  • 속도: Spark는 특정 유형의 워크로드에 대해 Hadoop MapReduce보다 최대 100배 빠르게 수행할 수 있는 메모리 내 처리 기능을 통해 빠르게 설계되었습니다.
  • 범용성: Spark는 데이터 처리, 기계 학습, 그래프 처리 등 다양한 작업에 사용할 수 있어 빅 데이터 처리를 위한 다목적 도구입니다.
  • 확장성: Spark는 대규모 데이터 세트를 처리하도록 쉽게 확장할 수 있으며 HDFS, Apache Cassandra 및 Apache HBase를 비롯한 다양한 형식으로 저장된 데이터를 사용할 수 있습니다.
  • 사용 용이성: Spark는 개발자가 Java, Python, R 및 SQL로 코드를 작성할 수 있도록 하는 간단하고 사용하기 쉬운 API를 제공하여 광범위한 사용자가 액세스할 수 있도록 합니다.
  • 실시간 스트리밍: Spark의 스트리밍 기능을 통해 실시간 데이터 스트림을 처리할 수 있으므로 실시간 분석 및 데이터 처리에 매우 적합합니다.
  • 내장 모듈: Spark는 SQL, 스트리밍, 기계 학습, 그래프 처리와 같은 인기 있는 빅 데이터 처리 작업을 위한 내장 모듈을 제공하므로 여러 도구를 사용하지 않고도 이러한 작업을 더 쉽게 수행할 수 있습니다.
  • 여러 언어 지원: Spark는 Java, Python, R 및 Scala를 비롯한 여러 프로그래밍 언어를 지원하므로 개발자가 가장 편한 언어를 쉽게 사용할 수 있습니다.
  • 내결함성: Spark는 RDD(Resilient Distributed Datasets) 기능을 통해 내결함성을 지원하여 데이터 손실 없이 노드 장애를 복구할 수 있습니다.

3. Apache Spark 구성

  • Driver program: 드라이버 프로그램은 마스터 노드에서 실행되고 작업자 노드에서 처리 작업을 조정하는 기본 프로그램입니다. 여기에는 main() 메서드가 포함되어 있으며 실행할 RDD 변환 및 작업을 정의합니다.
  • Cluster Manager: 클러스터 관리자는 Spark 애플리케이션에 리소스를 할당하고 작업자 노드를 관리합니다. Spark는 Standalone, Apache Mesos 및 Hadoop YARN을 비롯한 여러 클러스터 관리자를 지원합니다.
  • Worker nodes: 작업자 노드는 드라이버 프로그램에서 정의한 처리 작업을 실행합니다. 각 작업자 노드는 해당 노드에서 작업 실행을 담당하는 Spark Executor를 실행합니다.

 

 

  • RDD(Resilient Distributed Dataset): RDD는 빅 데이터 처리 및 분석을 위한 강력하고 사용하기 쉬운 API를 제공하는 Spark의 기본 데이터 구조입니다.
  • Spark SQL: Spark SQL은 구조화된 데이터 처리를 위한 Spark 모듈입니다. SQL(Structured Query Language)을 사용하여 구조화된 데이터로 작업하기 위한 프로그래밍 인터페이스와 프로그래밍 방식으로 데이터를 조작하기 위한 DataFrame API를 제공합니다.
  • Spark Streaming: Spark Streaming은 실시간 데이터 스트림을 처리하기 위한 Spark 모듈입니다. 이를 통해 데이터 스트림을 실시간으로 처리하고 필터링, 집계 및 기간 설정과 같은 복잡한 데이터 처리 작업을 수행할 수 있습니다.
  • Spark MLlib: Spark MLlib는 기계 학습을 위한 Spark 모듈입니다. 선형 회귀, 의사 결정 트리 및 k-평균 클러스터링을 포함하여 데이터 분석 및 모델링을 위한 광범위한 기계 학습 알고리즘 및 도구를 제공합니다.
  • Spark GraphX: Spark GraphX는 그래프 처리를 위한 Spark 모듈입니다. 그래프 알고리즘 및 그래프 병렬 계산을 포함하여 그래프 조작을 위한 프로그래밍 인터페이스를 제공합니다.

 

 

'data processing > spark' 카테고리의 다른 글

Spark RDD 프로그래밍  (0) 2023.01.24
Zeppelin(spark) 인터프리터 설정  (0) 2022.12.29
Zeppelin 환경구성  (0) 2022.12.29
SPARK 서버 환경 구성  (0) 2022.12.28

댓글