Spark 가속화는 하드웨어 최적화 기술을 이용하여 Spark 작업 성능을 향상시키는 기법입니다. 플랫폼 특정 기능을 활용하여 대규모 데이터 워크로드 처리 시간을 크게 줄여 작업 실행 속도를 높이고 리소스 활용도를 개선할 수 있습니다.
Spark 가속화는 기존 Spark 파이프라인에서 사용할 수 있습니다. 로직에 변경을 할 필요가 없습니다.
Python 변환 파이프라인에서 네이티브 가속화를 사용하려면 다음을 완료해야 합니다:
VELOX
백엔드를 활성화합니다:Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# 필요한 라이브러리를 임포트 합니다. from transforms.api import configure, ComputeBackend, Input, Output, transform_df # @configure 데코레이터를 사용하여 실행환경 설정을 합니다. # "EXECUTOR_MEMORY_MEDIUM", "EXECUTOR_MEMORY_OFFHEAP_FRACTION_HIGH"를 설정하고, 백엔드로는 VELOX를 사용합니다. @configure( ["EXECUTOR_MEMORY_MEDIUM", "EXECUTOR_MEMORY_OFFHEAP_FRACTION_HIGH"], backend=ComputeBackend.VELOX) # @transform_df 데코레이터를 사용하여 데이터 변환 작업을 정의합니다. # '/Project/folder/output' 경로로 결과를 출력하고, '/Project/folder/input' 경로의 데이터를 입력으로 받습니다. @transform_df( Output('/Project/folder/output'), source_df=Input('/Project/folder/input'), ) # 실제 데이터 변환 작업을 수행하는 함수를 정의합니다. def compute(source_df): ...
네이티브 가속화된 스파크 프로젝트를 최적화하기 위해 먼저 EXECUTOR_MEMORY_OFFHEAP_FRACTION_HIGH
설정을 사용하여 오프힙 메모리를 설정하세요. 이 메모리는 JVM 외부에서 일부 작업을 처리하는 Velox에 사용됩니다. 성능을 관찰하고, 필요에 따라 오프힙 메모리를 늘리거나 줄이세요.
분수 오프힙 프로파일을 사용하려면 EXECUTOR_MEMORY_X 프로파일도 설정해야 합니다. 작업에 이미 이 프로파일이 있을 가능성이 높습니다.