- [스파크 완벽 가이드] 14장 - 분산형 공유 변수31514브로드캐스트 변수브로드캐스트 변수는 읽기 전용 데이터를 클러스터의 모든 워커 노드에 효율적으로 공유하는 방법을 제공한다.브로드캐스트 변수를 사용하지 않고, 클로저 함수에 담아 태스크에 데이터를 전달하는 방식은 매번 직렬화가 발생하여 큰 부하를 유발할 수 있다.하지만 브로드캐스트 변수는 클러스터의 각 워커 노드에 한 번만 전송되며, 각 워커 노드에서 해당 변수를 공유 메모리로 저장하고, 해당 워커 내의 모든 태스크가 그 변수를 참조할 수 있게 됩니다. 사용 예시my_collection = "Spark The Definitive Guide : Big Data Processing Made Simple".split(" ")words = spark.sparkContext.parallelize(my_collecti..
- 2024-10-22 12:56:17
- [스파크 완벽 가이드] 15장 - 스파크 애플리케이션의 생애주기31514스파크에서 코드를 실행할 때 어떤 일이 발생하는지 알아보자. 생애주기 - 외부스파크 드라이버는 애플리케이션 실행을 제어하고, 클러스터(익스큐터의 상태와 태스크)의 모든 상태 정보를 유지한다.물리적 자원 확보와 익스큐터 실행을 위해 클러스터 매니저와 통신할 수 있어야 한다. 스파크 익스큐터는 드라이버가 할당한 태스크를 수행하는 프로세스이다.태스크의 상태와 결과를 드라이버에게 보고한다. 클러스터 매니저는 애플리케이션을 실행할 클러스터 머신을 유지한다.마스터와 워커라는 개념을 가지고 있으며 클러스터 매니저와 물리적인 노드 또는 가상의 노드들이 존재한다. 수 많은 노드 중에서 스파크 드라이버 역할을 할 노드를 선택하고 애플리케이션 정보를 드라이버에게 전달한다.스파크 드라이버는 애플리케이션 정보를 읽고, 필요한 ..
- 2024-10-21 17:09:46
- [공룡책] 3장 - 프로세스31514이 글은 공룡책 3장에 있는 프로세스 간의 통신에 대해 다룬다. 프로세스 간의 통신(IPC)에는 기본적으로 공유 메모리와 메시지 전달의 두 가지 모델이 있다. 공유 메모리공유 메모리를 사용하여 통신하려는 프로세스들은 당연하게도 공유 메모리를 구축해야 한다.하지만 운영체제는 하나의 프로세스가 다른 프로세스의 메모리에 접근하는 것을 금지하고 있기 때문에 두 프로세스는 제약 조건 제거에 동의하는 것을 필요로 한다. 대신 운영체제는 프로세스 간의 통신 과정에서 데이터의 형식과 위치는 프로세스가 결정하도록 한다.약간.. 말 안듣는 자식한테 니 알아서 하라고 하는 느낌이다.따라서 두 프로세스는 동시에 동일한 위치에 쓰는 문제를 해결해야 한다. 이를 조금 더 자세히 살펴보기 위해서 생산자-소비자 문제를 예로 들어보자..
- 2024-10-17 14:02:09
- [스파크 완벽 가이드] 18장 - 모니터링31514어떤 컴포넌트를 모니터링해야 할까?스파크 애플리케이션 잡 - 클러스터에서 사용자 애플리케이션이 실행되는 상황을 파악하거나 디버깅하려면 가장 먼저 스파크 UI와 스파크 로그를 확인해야 한다.JVM - 스파크는 모든 익스큐터를 개별 JVM에서 실행하기 때문에 코드가 실행되는 과정을 이해하기 위해 각 JVM을 모니터링해야 한다.OS와 머신 - JVM은 호스트의 OS에서 실행되기 때문에 머신의 상태를 모니터링해야 한다.클러스터 - YARN, MESOS, 스탠드얼론 클러스터 매니저가 대상이 된다.
- 2024-10-17 12:15:41
- [스파크 완벽 가이드] 17장 - 스파크 배포 환경31514클러스터 환경온프레미스 클러스터사용 중인 하드웨어를 완전히 제어할 수 있어서 특정 워크로드의 성능을 최적화할 수 있다. 클러스터의 크기가 제한적이다.클러스터는 하둡 파일 시스템이나 분산 키-값 저장소 같은 자체 저장소 시스템을 선택하고 운영해야 한다. 온프레미스 클러스터를 사용한다면 자원 활용 문제를 해결할 수 있는 클러스터 매니저를 사용하는 것이 좋다. 클라우드 배포자원을 탄력적으로 늘이고 줄이는 것이 가능하다.클라우드 환경은 비용이 저렴하고 복제 기능을 지원하는 저장소를 제공하기 때문에 대규모 데이터를 쉽게 관리할 수 있다. 클러스터 매니저스탠드얼론 모드아파치 스파크 워크로드용으로 특별히 제작된 경량화 플랫폼이다. 하둡 YARN하둡 YARN은 잡 스케줄링과 클러스터 자원 관리용 프레임워크다.spark..
- 2024-10-16 12:50:12
- [스파크 완벽 가이드] 9장 - 데이터소스31514데이터소스 API의 구조읽기 API 구조DataFrameReader.format(...).option("key", "value").schema(...).load() 쓰기 API 구조DataFrameWriter.format(...).option(...).partitionBy(...).bucketBy(...).sortBy(...).save() CSV 파일csvFile = spark.read.format("csv")\ .option("header", "true")\ .option("mode", "FAILFAST")\ # 읽기 모드 - 형식에 맞지 않는 레코드를 만나면 즉시 종료 .option("inferschema", "true")\ .load("경로") JSON 파일스파크에서는 JSON 파일을 사용할..
- 2024-10-15 15:41:58
- [스파크 완벽 가이드] Spark 성능 튜닝 가이드31514이 글에서는 잡의 실행 속도를 높이기 위한 몇 가지 방법을 알아보겠습니다.스파크의 잡을 최적화할 수 있는 방법은 크게 다음과 같이 두 가지가 존재합니다.속성 값을 설정하거나 런타임 환경을 변경하는 간접적인 방법개별 스파크 잡, 스테이지, 태스크를 튜닝하거나 코드 설계를 변경하는 직접적인 방법그리고 이를 확인하기 위해 좋은 모니터링 도구와 잡 이력 추적 환경을 구성하는 것이 중요합니다. 간접적인 성능 향상 기법1. 좋은 설계 방안구조적 API로 만들 수 없는 사용자 정의 트랜스포메이션(RDD 트랜스포메이션/UDF)을 사용해야 한다면, 해당 부분만 파이썬과 R을 피하자.직접 RDD를 작성하면 Spark SQL 엔진의 최적화 혜택을 받을 수 없다.UDF 사용은 최대한 자제하는 것이 좋다.UDF는 데이터를 JV..
- 2024-10-14 15:16:37
- [스파크 완벽 가이드] 스파크 간단히 살펴보기31514스파크의 기본 아키텍처클러스터는 여러 컴퓨터의 자원을 모아 하나의 컴퓨터처럼 사용할 수 있게 만든다.클러스터는 클러스터 매니저에서 관리하는데, 그 예로 Standalone, YARN, Mesos, Kubernetes 등이 있다. 사용자가 클러스터 매니저에게 스파크 애플리케이션 제출클러스터 매니저는 필요한 자원 할당할당 받은 자원으로 작업 처리 스파크 애플리케이션스파크 애플리케이션은 위와 같이 드라이버와 다수의 익스큐터로 구성된다.드라이버 - 클러스터 노드 중 하나에서 실행되며 main() 함수 실행익스큐터 - 드라이버가 할당한 작업 수행 및 보고 DataFrameDataFrame은 테이블의 데이터를 로우와 컬럼으로 단순하게 표현했고, Spark 뿐 아니라 Python이나 R에도 존재한다.하지만 Spark..
- 2024-10-14 12:29:40
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)