spark 9

[PySpark] org.apache.spark.SparkException: Python worker failed to connect back.

현상 PySpark가 동작하는지 확인하고자 간단히 DataFrame을 생성하는 코드를 실행했다. from pyspark.sql import SparkSession if __name__ == '__main__': # SparkSession 초기화 spark = SparkSession.builder.appName("Simple Application").getOrCreate() # 데이터프레임 생성 data = [("James", "", "Smith", "1991-04-01", "M", 3000), ("Michael", "Rose", "", "2000-05-19", "M", 4000), ("Robert", "", "Williams", "1978-09-05", "M", 4000), ("Maria", "Anne"..

Hadoop EcoSystem 2023.12.01

[Spark] Pycharm에서 실행하기

개요 2023.11.29 - [Spark] Window에 설치에서 Spark를 컴퓨터에 설치해 봤는데, 아무래도 IDE를 이용해 코딩을 하는 게 편할 것 같다. 보통 Spark는 JetBrains의 IntelliJ, Pycharm을 많이 사용한다고 하니, 이 글에서는 Pycharm으로 Spark를 실행할 수 있도록 PySpark를 설치/설정해 보겠다. PySpark 설치 - 생략 PySpark는 클러스터 자체를 설정하는 대신, 로컬에서 실행하거나 원격 클러스터에 연결하기 위한 클라이언트 용도로 사용되며, pip로 설치할 수 있다. pip install pyspark # Spark SQL pip install pyspark[sql] # pandas API on Spark pip install pyspark..

Hadoop EcoSystem 2023.11.30

[Spark] Window에 설치

개요 Spark에 대한 개념만 공부할 뿐만 아니라 직접 코딩을 해볼 수 있도록 Window 10에 환경을 구성해보려고 한다. 최신 버전인 Spark 3.5.0를 설치한다. 설치가 필요한 소프트웨어는 다음과 같다. - Java 11 - Spark 3.5.0 - Hadoop 3.3 : window 용 바이너리만 설치. ❗❓ Scala는 설치 안 하나요? Spark는 scala 2.12 / 2.13 버전에서 실행되는데, 이 글에서 설치할 Spark 버전에는 scala가 pre-built 되어 있어 별도 설치가 필요하지 않다. 물론 scala로 코딩을 한다면 설치해야할 것 같지만, 추가로 공부를 해야 하는 입장이라 아무래도 python으로 코딩할 것 같다. 따라서 이 글에서는 설치하지 않는다. Java 설치 공..

Hadoop EcoSystem 2023.11.29

[Spark] DataFrame

DataFrame 행과 열로 구성된 분산 데이터 구조로, Spark 1.3에서 도입되었다. 각 열의 이름과 데이터 유형을 정의하는 스키마를 가져 정형 데이터를 다루기 좋다. RDD VS DataFrame DataFrame은 RDD의 성능적 이슈로 등장하게 되었다. 먼저 RDD에는 스키마 개념이 없어 구조화된 데이터와 비구조화된 데이터를 함께 저장할 수 있는 대신 처리에 대한 효율성은 떨어진다. 그리고 제대로 동작하기 위해서는 디스크와 메모리에 저장 공간이 충분해야 하고, 기본적으로 직렬화와 Garbage Collection을 사용하기 때문에 동작 시 메모리 오버헤드가 증가할 수 있다. 특징 1. 구조화된 구조 구조화된 데이터를 다루기 좋고, SparkSQL 등을 통해 데이터에 대한 쿼리를 수행할 수 있다..

Hadoop EcoSystem 2023.11.28

[Spark] SparkSession VS SparkContext

개요 Spark 샘플 코드를 보면 데이터를 로드하고 처리하기 전에 SparkSession, SparkContext 객체를 선언하는 것으로 보인다. 각각 어떤 역할을 하는지 정리한다. SparkContext SparkContext는 Spark 1부터 사용할 수 있는 Spark 기능의 진입점에 해당한다. 클러스터에서 RDD, accumulators, 브로드캐스트 변수 등을 구축하는 데 사용하는 Spark 클러스터의 연결이라고 할 수 있다. SparkContext는 애플리케이션이 Resource Manager를 사용해 Spark 클러스터에 연결할 수 있게 한다. 참고로 SparkContext를 만들기 전에는 SparkConf 객체를 먼저 생성해야 한다. import org.apache.spark.{SparkC..

Hadoop EcoSystem 2023.11.27

[Spark] RDD

RDD Resilient Distributed Dataset의 약어로, Spark의 기본 데이터 구조이다. 데이터는 여러 분산 노드에 걸쳐 저장되고, 변경되지 않는다. 만약 변경이 필요한 경우 새로운 데이터셋을 만들어야 한다. 또한 병렬로 처리할 수 있고, 장애가 발생하는 경우 스스로 복구할 수 있다. 연산 RDD는 딱 두 가지 연산만을 제공한다. Transformation 기존 RDD 데이터를 변경해 새로운 RDD 데이터를 생성한다. 특정 데이터만 추출하는 filter, map 등의 작업이 해당된다. Action RDD로 값을 계산하여 결과를 생성한다. 최종 결과를 반환하거나 외부 저장소에 쓸 수 있다. 데이터의 수를 세는 count, 첫 번째 요소를 반환하는 first 등의 연산이 해당된다. 특징 1..

Hadoop EcoSystem 2023.11.15

[Spark] 실행 구조

구조 Spark 애플리케이션은 클러스터에서 독립적인 프로세스 집합으로 실행되며, 메인 프로그램인 드라이버 프로그램의 SparkContext 객체가 조정한다. SparkContext는 독립 실행형 클러스터 매니저, Mesos, YARN, Kubernetes 등 여러 클러스터 관리자에 연결하여 클러스터의 리소스를 관리한다. 또한 JAR, Python으로 정의된 애플리케이션을 데이터를 저장하고 처리하는 Executor 프로세스로 전달한다. 각 애플리케이션은 실행 시간 동안 유지되고 멀티스레딩으로 처리되는 자체적인 executor 프로세스를 가진다. 이는 스케쥴러와 executor에서 애플리케이션을 격리할 수 있다는 이점을 가지지만, 외부 스토리지 시스템 없이는 서로 다른 Spark 애플리케이션 간 데이터를 공..

Hadoop EcoSystem 2023.11.14

[Spark] 구성 요소

개요 2023.11.10 - Apache Spark 이란에서 Spark의 개념과 특징 정도만 정리했는데, 이 글에서는 Spark의 구성 요소에 대해 정리해두려고 한다. 대개 Spark의 구성 요소라고 함은 위와 같은 그림으로 표현되는 것 같다. 각 요소에 대해 적어둔다. Spark Core Apache Spark 프레임워크의 핵심으로, Spark Core에 구축된 구성요소가 요구하는 실행 엔진을 제공한다. 내장 메모리 컴퓨팅과 외부 스토리지 시스템에 저장된 참조 데이터셋을 제공하며, 기본 I/O 함수, 스케쥴링, 모니터링, 장애 복구, 메모리 효율 관리 등을 수행한다. RDD라고 하는 자료 구조를 사용한다. Spark SQL Spark SQL은 SQL과 유사한 방식으로 데이터를 처리하기 위해 명명되었는데..

Hadoop EcoSystem 2023.11.13

Apache Spark 이란

Spark 머신 러닝 및 AI 애플리케이션을 위한 오픈 소스 데이터 처리 엔진. 대규모 데이터를 처리하기 위한 오픈소스이다. SQL, 스트리밍 데이터 ,머신러닝, 그래프 처리 등을 위한 기능을 제공하며, 빅데이터 처리에 필요한 컴퓨팅 속도, 확장성 등을 고려하여 설계되었다. 병렬성과 내결함성을 바탕으로 작업을 어려 컴퓨터로 구성된 클러스터에 분산시킬 수 있고, 인메모리 처리 엔진으로 다른 엔진보다 빠른 처리 속도를 기대할 수 있다. Spark는 Java, Scala, Python, R 등에서 사용할 수 있다. 특징 Apache Spark는 다음과 같은 특징을 가진다. 속도 (Speed) : 디스크 읽기/쓰기 작업을 최소화하여 Hadoop보다 10배, 100배 빠르게 처리할 수 있다. 내결함성 (Fault..

Hadoop EcoSystem 2023.11.10
1