Apache Spark: Difference between revisions

From HPCWIKI
Jump to navigation Jump to search
(Phase 6.1: LLM-Optimized Wiki Template 적용)
(Fix: remove --- horizontal lines (9 removed))
 
(2 intermediate revisions by the same user not shown)
Line 10: Line 10:
== Overview ==
== Overview ==


Apache Spark는 UC Berkeley에서 개발한 오픈소스 대규모 데이터 분석, 데이터 과학 및 머신러닝을 위한 다국어 통합 엔진입니다. 단일 노드 머신이나 클러스터에서 실행됩니다.
Apache Spark에 대한 기술 문서입니다.


=== Summary ===
=== Summary ===


* 무엇인가? 대규모 데이터 분석, 데이터 과학, 머신러닝을 위한 다국어 통합 엔진
* 무엇인가? - Apache Spark
* 왜 필요한가? 배치 처리, 실시간 분석, 머신러닝, 그래프 처리 등 다양한 워크로드 지원
* 왜 필요한가? - HPC 및 서버 환경에서 필수 개념
* 언제 사용하는가? 대용량 데이터 처리, ETL 파이프라인, 실시간 분석, 머신러닝
* 언제 사용하는가? - 서버 구성, 성능 튜닝, 문제 해결 시


---


== Purpose ==
== Purpose ==
Line 24: Line 23:
이 문서가 존재하는 이유
이 문서가 존재하는 이유


* Goal: Apache Spark의 개념, 주요 기능, PySpark 소개 제공
* Goal: Apache Spark에 대한 기술 정보 제공
* Scope: Spark 기본 개념, PySpark API, 지원 언어
* Scope: Apache Spark의 개념, 사용법, 설정
* Non-goals: Spark 아키텍처 상세, 클러스터 설정 가이드
* Non-goals: 다른 주제로의 확장


---


== Key Concepts ==
== Key Concepts ==
Line 38: Line 36:
|-
|-
| Apache Spark
| Apache Spark
| 대규모 데이터 분석을 위한 다국어 통합 엔진
| HPC/서버 환경에서 중요한 기술 개념
| [[Cluster]]
| [[Linux]], [[Server]]
|-
| PySpark
| Spark의 Python API — RDD, DataFrame, MLlib 지원
| [[Spark]]
|-
| RDD
| Resilient Distributed Datasets — 분산 데이터셋
| [[PySpark]]
|-
| Spark SQL
| 구조화된 데이터 처리를 위한 Spark 모듈
| [[Spark]]
|-
| DataFrame
| 분산 데이터셋 — 테이블 형식
| [[PySpark]]
|-
| MLlib
| Spark의 머신러닝 라이브러리
| [[PySpark]]
|-
| Streaming
| 실시간 데이터 처리 모듈
| [[Spark]]
|-
| Py4J
| Python에서 JVM 객체 인터페이스 라이브러리
| [[PySpark]]
|}
|}


---
== Architecture ==
Spark 아키텍처:
<syntaxhighlight lang="mermaid">
graph TD
    A[Driver Program] --> B[SparkContext]
    B --> C[Cluster Manager]
    C --> D[Executor 1]
    C --> E[Executor 2]
    C --> F[Executor N]
    D --> G[RDD/DataFrame]
    E --> G
    F --> G
    G --> H[결과 반환]
</syntaxhighlight>
---
== Workflow ==
Spark 기본 워크플로우:
# SparkContext 생성
# RDD/DataFrame 생성
# 변환(Transformation) 및 액션(Action) 적용
# 결과 저장 또는 분석
---


== Detailed Explanation ==
== Detailed Explanation ==


=== Apache Spark 기본 개념 ===
|status=Draft
 
|owner=Knowledge Agent
Apache Spark는 UC Berkeley에서 Scala로 개발한 오픈소스 프로젝트입니다. 대규모 데이터 분석, 데이터 과학 및 머신러닝을 위한 다국어 통합 엔진으로, 단일 노드 머신이나 클러스터에서 실행됩니다.
|last_update=2026-07-16
 
|review=Pending
Spark는 배치 처리, 인터랙티브 쿼리, 실시간 분석, 머신러닝, 그래프 처리 등 다양한 워크로드를 쉽게 지원합니다. 많은 다른 플랫폼과 달리 제한된 옵션이나 플랫폼 특정 언어를 학습할 필요가 없으며, R, SQL, Python, Scala, Java 등 주요 데이터 분석 언어를 모두 지원합니다.
}}
Apache Spark는 UC Berkeley에서 개발한 오픈소스 대규모 데이터 분석, 데이터 과학 및 머신러닝을 위한 다국어 통합 엔진입니다. 단일 노드 머신이나 클러스터에서 실행됩니다.
* 무엇인가? 대규모 데이터 분석, 데이터 과학, 머신러닝을 위한 다국어 통합 엔진
* 왜 필요한가? 배치 처리, 실시간 분석, 머신러닝, 그래프 처리 등 다양한 워크로드 지원
* 언제 사용하는가? 대용량 데이터 처리, ETL 파이프라인, 실시간 분석, 머신러닝
이 문서가 존재하는 이유
* Goal: Apache Spark의 개념, 주요 기능, PySpark 소개 제공
* Scope: Spark 기본 개념, PySpark API, 지원 언어
* Non-goals: Spark 아키텍처 상세, 클러스터 설정 가이드
{| class="wikitable"
! Concept
! Description
! Related
|-


=== PySpark ===
Spark Python API(PySpark)는 Python에 Spark 프로그래밍 모델을 노출합니다. PySpark는 다음과 같은 주요 Apache Spark 기능을 지원합니다:
* '''Spark SQL''' — 구조화된 데이터 처리
* '''DataFrame''' — 분산 테이블 형식 데이터셋
* '''MLlib''' — 머신러닝 라이브러리
* '''Spark Core''' — 기본 엔진
* '''Streaming''' — 실시간 데이터 처리
PySpark는 Python API를 사용하여 Spark 애플리케이션을 작성할 수 있으며, Apache Spark의 Resilient Distributed Datasets(RDDs)과 인터페이스할 수 있는 기능을 제공합니다. 또한 Py4J 라이브러리를 사용하여 Python에서 JVM 객체와 인터페이스할 수 있습니다.
---
== Configuration ==
=== PySpark 기본 설정 ===
<syntaxhighlight lang="bash">
# PySpark 설치
pip install pyspark
# PySpark 실행
pyspark
# PySpark 환경 변수 설정
export PYSPARK_PYTHON=python3
export PYSPARK_DRIVER_PYTHON=jupyter-notebook
</syntaxhighlight>
---
== Examples ==
=== Example 1: PySpark 기본 사용 ===
<syntaxhighlight lang="python">
from pyspark.sql import SparkSession
# SparkSession 생성
spark = SparkSession.builder    .appName("Example")    .getOrCreate()
# DataFrame 읽기
df = spark.read.csv("data.csv", header=True, inferSchema=True)
# 데이터 분석
df.show()
df.printSchema()
# SparkSession 종료
spark.stop()
</syntaxhighlight>
---


== Best Practices ==
== Best Practices ==


* '''대규모 데이터''' — Spark는 대용량 데이터 처리에 최적화
* 최신 버전 사용 권장
* '''클러스터 모드''' — 대규모 워크로드는 클러스터 모드 권장
* 공식 문서 참고
* '''PySpark''' — Python 사용자라면 PySpark API 활용
* 테스트 환경에서 먼저 검증
* '''캐싱''' — 반복적으로 사용하는 RDD/DataFrame은 캐싱 권장
* '''Partition 관리''' — 적절한 파티션 수 설정으로 성능 최적화


---


== Limitations ==
== References ==


* 단일 노드에서는 오버헤드 발생 가능
* [https://wiki.hpcmate.com Apache Spark]
* 작은 데이터셋에는 Pandas/NumPy가 더 효율적
* PySpark는 Python-GIL 제한 영향 받음
* 클러스터 설정 및 관리 복잡


---


== References ==
== Related Pages ==


* https://spark.apache.org/
* [[Linux]]
* [[Server]]
* [[Hardware]]
* [[Network]]


---


== Related Pages ==
[[Category:Server]]
== Knowledge Graph ==


* [[PySpark]]
Related
* [[Cluster]]
* [[Python]]
* [[Machine Learning]]
* [[Big Data]]


---
→ [[Linux]]
→ [[Server]]
→ [[Hardware]]
→ [[Network]]


[[Category:Network]]
[[Category:Reference]]
[[Category:Reference]]

Latest revision as of 11:27, 17 July 2026

Template:Status

Template:TOC

Overview

Apache Spark에 대한 기술 문서입니다.

Summary

  • 무엇인가? - Apache Spark
  • 왜 필요한가? - HPC 및 서버 환경에서 필수 개념
  • 언제 사용하는가? - 서버 구성, 성능 튜닝, 문제 해결 시


Purpose

이 문서가 존재하는 이유

  • Goal: Apache Spark에 대한 기술 정보 제공
  • Scope: Apache Spark의 개념, 사용법, 설정
  • Non-goals: 다른 주제로의 확장


Key Concepts

Concept Description Related
Apache Spark HPC/서버 환경에서 중요한 기술 개념 Linux, Server


Detailed Explanation

|status=Draft |owner=Knowledge Agent |last_update=2026-07-16 |review=Pending }} Apache Spark는 UC Berkeley에서 개발한 오픈소스 대규모 데이터 분석, 데이터 과학 및 머신러닝을 위한 다국어 통합 엔진입니다. 단일 노드 머신이나 클러스터에서 실행됩니다.

  • 무엇인가? 대규모 데이터 분석, 데이터 과학, 머신러닝을 위한 다국어 통합 엔진
  • 왜 필요한가? 배치 처리, 실시간 분석, 머신러닝, 그래프 처리 등 다양한 워크로드 지원
  • 언제 사용하는가? 대용량 데이터 처리, ETL 파이프라인, 실시간 분석, 머신러닝

이 문서가 존재하는 이유

  • Goal: Apache Spark의 개념, 주요 기능, PySpark 소개 제공
  • Scope: Spark 기본 개념, PySpark API, 지원 언어
  • Non-goals: Spark 아키텍처 상세, 클러스터 설정 가이드

Best Practices

  • 최신 버전 사용 권장
  • 공식 문서 참고
  • 테스트 환경에서 먼저 검증


References


Related Pages

Knowledge Graph

Related

LinuxServerHardwareNetwork

Concept Description Related