목록2025/04/06 (2)
엔지니어 블로그
Spark의 대표적인 장애인 Spill을 알아보고 어떤 설정을 통해 성능 튜닝이 가능한지 알아보려고 합니다. Spill을 알아보기 전에 Shuffle,Partition의 개념을 먼저 알아보겠습니다.PartitionPartition은 RDD를 구성하는 최소 단위 객체입니다. Spark의 성능,리소스 사용을 좌우하는 중요한 개념입니다. Partition은 여러 물리 노드에서 나누어 작업합니다. Spark의 최소 작업 단위를 Task라고 하고, 1개의 Task는 1개의 Partition에서 처리합니다. 또 1개의 Task는 1Core가 처리합니다. 즉, 1Task = 1Core = 1Partition입니다.Partition의 수는 Spark 성능을 크게 좌우합니다. Partition의 수가 Core수를 결정하..

Lazy Evaluation 이란?Spark에는 Lazy Evaluation이라는 기능이 있습니다. Transformation 작업을 실행하더라도 실제 변환은 Action 작업이 진행될 때 까지 미루는 기능입니다. 예를 들어 df.filter() 작업을 수행하더라도 실제 데이터 변환 작업은 진행되지 않고, df.show()를 수행할 때 변환이 진행됩니다.Lazy Evaluation을 사용하는 이유Lazy Evaluation을 사용하는 이유는 효율적인 자원 활용을 위함입니다. 데이터 변환을 미루는 행위를 통해 전체 DataFrame을 메모리에 올리는 작업을 피할 수 있습니다. 조금 더 자세히는 매 변환 작업마다 DataFrame을 메모리로 가져오는 것을 피하여 자원 활용의 효율성을 높이기 위함입니다.또 다..