본문 바로가기

데이터/Apache Spark

(7)
[Apache Spark] 실습을 위한 로그 파일 생성 Apache Spark는 대규모 데이터 처리를 위한 오픈 소스 클러스터 컴퓨팅 프레임워크로, 대규모 데이터셋을 효과적으로 처리할 수 있습니다. 이를 실습하기 위해 사용할 로그 파일을 생성하는 파이썬 코드를 작성해 보도록 하겠습니다. 실습에 사용할 로그 파일 결과물 112.85.179.101,2023-11-28 21:33:50,PUT,/auth,403,90 68.26.205.170,2023-11-28 21:37:11,DELETE,/auth,404,8 152.244.89.140,2023-11-28 21:34:32,PATCH,/customer,200,27 162.125.162.55,2023-11-28 21:34:48,POST,/products,200,64 239.158.199.177,2023-11-28 21:..
[Apache Spark] RDD란 무엇인가? Apache Spark는 대규모 데이터 처리를 위한 오픈 소스 클러스터 컴퓨팅 프레임워크로 분산 데이터 처리를 간편하게 할 수 있는 기능을 제공합니다. 그 중에서도 RDD(Resilient Distributed Dataset)는 Spark의 핵심 개념 중 하나입니다. RDD란 무엇인가? RDD는 데이터를 여러 노드에 분산하여 처리할 수 있는 데이터 구조입니다. 이는 Spark가 대량의 데이터를 효율적으로 처리하고 분석하기 위한 기반을 제공합니다. 간단하게 말하면, RDD는 여러 노드에 나누어 저장된 변경 불가능한 객체 모음이며, 데이터에 대한 병렬 처리를 가능케 합니다. RDD의 특징 1. 탄력성 (Resilience) : RDD는 변경 불가능한 데이터 구조이므로, 노드에 장애가 발생하도 다른 노드에 복..
[Apache Spark] 로컬 환경에 설치 및 간단 예제 이번에는 로컬 환경에 Apache Spark를 설치하고 간단한 예제를 작성하여 실습을 진행해 보도록 하겠습니다. 저는 macOS를 사용하고 있어서, 윈도우 환경에서 진행하시는 분들과는 약간의 차이가 있을 수 있습니다. 자바 설치 먼저 Apache Spark에 필요한 Java를 설치해 줍니다. 자바 설치 방법은 다양하기 때문에 따로 설명을 추가하진 않겠습니다. java --version 터미널에서 위 명령어를 입력했을 때, 버전 정보가 정상적으로 출력된다면 설치가 완료된 것 입니다. IDE 설치 코드 작성에 사용할 IDE를 설치 해 줍니다. 저는 PyCharm을 사용하도록 하겠습니다. PyCharm 이외에 본인이 편하신 IDE를 사용하셔도 됩니다. https://www.jetbrains.com/produc..
[Apache Spark] Transformation과 Action Apache Spark는 데이터 처리를 위해 Transformation과 Action이라는 두 가지 주요 연산을 제공합니다. 또한, Lazy Evaluation이라는 개념을 도입하여 효율적인 실행 계획을 수립합니다. Transformation Transformation은 기존의 데이터를 변환하여 새로운 RDD(Resilient Distributed Dataset)를 생성하는 연산입니다. Transformation은 원본 데이터를 변경하지 않고, 새로운 RDD를 생성하므로 Immutable(불변)한 특성을 가지고 있습니다. 주로 Map, Filter 등의 연산이 여기에 해당합니다. Narrow Transformation Narrow Transformation은 각 입력 파티션에서의 데이터만을 사용하여 출력..
[Apache Spark] Apache Spark의 메커니즘 Apache Spark는 대용량 데이터를 처리하는 뛰어난 성능을 제공하는 분산 컴퓨팅 엔진으로, 데이터 처리 과정을 효율적으로 관리하기 위해 핵심 메커니즘을 사용합니다. Spark Session (Spark Application) Spark Session은 Spark 애플리케이션을 초기화하고 데이터를 처리하는 데 필요한 모든 기능을 통합하는 진입점 (entry point) 입니다. Spark Session은 Spark 2.0 버전 이후부터 도입되었으며, Spark Context와 SQL Context를 통합하여 사용자가 데이터를 읽고 쓰며 SQL 쿼리를 실행하는 등 다양한 작업을 수행할 수 있는 통합 환경을 제공합니다. Spark의 코어 기능들과 상호 작용할 수 있는 진입점을 제공하여, API로 프로그래..
[Apache Spark] Apache Spark의 아키텍처 Apache Spark는 분산 환경에서 대량의 데이터 처리를 위해 설계된 클러스터 컴퓨팅 시스템입니다. Spark의 아키텍처는 클러스터 매니저, 드라이버 프로그램, 그리고 실행기(Executor)라는 주요 구성 요소로 이루어져 있습니다. 드라이버 프로그램 드라이버 프로그램은 Apache Spark 애플리케이션의 중심적인 제어 역할을 하는 구성 요소입니다. 사용자가 작성한 Spark 애플리케이션 코드는 드라이버 프로그램에서 실행되며, 이는 SparkContext를 생성하고 Spark 작업의 실행을 조정합니다. 드라이버 프로그램의 주요 역할은 다음과 같습니다: 1. Spark Context 생성 : 드라이버 프로그램은 Spark 애플리케이션의 실행을 위해 SparkContext를 생성합니다. SparkCon..
[Apache Spark] Apache Spark란 무엇인가? Apache Spark는 대용량 데이터 처리를 위한 빠르고 범용적인 클러스터 컴퓨팅 시스템입니다. 원래는 AMPLab에서 개발 되었으며, 2013년부터 Apache Software Foundation의 프로젝트로 이관되었습니다. Apache Spark의 탄생 배경 Apache Spark는 2009년 UC 버클리의 AMPLab에서 처음 개발되었습니다. 그 배경에는 당시의 데이터 처리 방식에 대한 몇 가지 주요한 문제점들이 있었습니다. 1. 처리속도 : 대용량 데이터 처리를 위한 주요 도구였던 Hadoop MapReduce는 디스크 기반의 처리 방식을 사용했습니다. 이는 대용량 데이터를 처리하는 데에는 충분했지만, 처리 속도 측면에서는 많은 제한이 있었습니다. 특히, 반복적인 알고리즘을 수행하는 데에는 많은..