분산 처리 시스템 학습 및 실전 최적화 전략
MapReduce 아키텍처의 핵심 원리
MapReduce는 대규모 데이터 처리를 위한 분산 컴퓨팅 모델로, 데이터를 분할 → 처리 → 집계의 세 단계로 나누어 처리한다. 주요 단계는 다음과 같다:
Map 단계: 입력 데이터를 키-값 쌍으로 변환하고, 각 요소에 대해 독립적인 연산 수행.
Shuffle & Sort 단계: 동일한 키를 가진 값들을 그룹화하여 리듀서로 전달.
Reduce 단계: ...
7월 5일 16:05에 게시됨
Spark에서 Kudu DML 작업 처리하기
Kudu는 다양한 DML 유형의 작업을 지원하며, 이러한 작업 중 일부는 Spark on Kudu 통합에서 사용할 수 있습니다.
포함되는 작업:
INSERT - DataFrame의 행을 Kudu 테이블에 삽입합니다. INSERT는 API에서 완전히 지원되지만 Spark에서는 사용을 권장하지 않습니다. Spark 태스크가 재실행될 가능성이 있어 이미 삽입된 행을 다시 삽입해야 할 수 있으므로 위험합니다. 이 ...
6월 24일 23:24에 게시됨
RDD 성능 최적화 및 실용적인 문제 해결 전략
성능 튜닝을 위한 핵심 기법
6.1 파티션 수 조정을 통한 병렬 처리 최적화
파티션 수는 Spark 애플리케이션의 병렬성과 리소스 사용 효율에 직접적인 영향을 미친다. 너무 적은 파티션은 클러스터 자원 활용도를 낮추고, 지나치게 많은 파티션은 스케줄링 오버헤드를 증가시킨다.
# HDFS 파일 로딩 시 초기 파티션 수 설정
log_rdd = sc.textFile("hdfs:///data/logs/acce ...
6월 8일 00:46에 게시됨
Spark SQL에서 MySQL로 데이터 쓰기 시 UPDATE 작업을 지원하는 방법
Spark SQL이 MySQL과 통합될 때 기본적으로 지원하는 모드는 Append, Overwrite, ErrorIfExists, Ignore가 있습니다. 이 문서에서는 Spark SQL이 MySQL로 데이터를 쓰면서 UPDATE 작업을 지원하도록 설정하는 방법을 설명합니다.
배경 정보
Spark는 데이터 소스와의 상호작용을 위한 모드를 지정하는 데 사용되는 열거형 클래스를 제공합니다. 원본 코드 분석 결과 Spar ...
5월 28일 23:38에 게시됨
Spark 버전 업그레이드: 1.6에서 2.4.6로의 이전 경험
저는 현재 작업 플랫폼 프로젝트에서 Spark 1.6.1 버전을 사용하고 있었으며, 주로 Python으로 개발했습니다.
현재 Spark 1.6.1 버전에서 2.4.6 버전으로 직접 업그레이드하는 작업을 진행했으며, 이 과정에서 여러 문제가 발생하여 이를 기록합니다:
문법 호환성 문제
데이터 플랫폼 작업은 일별 작업과 시간별 작업으로 나뉘며, 처리된 데이터를 Hive 테이블(분구)에 ...
5월 27일 17:30에 게시됨