본문 바로가기
728x90

Spark Tuning3

[Spark Tuning] PartitionFilters vs PushedFilter 비교, predicate pushdown vs projection pushdown 이번 포스트에서는 spark에서 partitionfilter의 개념과 언제 적용되는지, 그리고 확인하는 방법을 확인하고 PushedFilter와의 차이점,마지막으로 PushedFilter의 종류 predicate과 projection의 차이를 알아보겠습니다. 1. PartitionFilters vs PushedFilters PartitionFilters란 특정 파티션에서만 데이터를 가져오고 관련 없는 파티션은 모두 생략합니다. 데이터 스캔 생략은 성능의 큰 향상을 가져다 줍니다. PushedFilters 보다 선행된다. PartitionFilter기술은 조건에 사용된 컬럼이 파티션되어 있고 스파크가 필터 조건을 충족하는 특정 디렉터리만 스캔할 때 사용됩니다. PushedFilters란 PushedFilt.. 2023. 1. 1.
[Spark Tuning] (spark on YARN)yarn container, spark core, executor 개수 Memory 용량 계산법 및 최적화 이번 포스트에는 Spark의 core, executor, memory 계산법 대해서 알아보겠습니다. Core ? vCore? 헷갈릴 개념 요즘은 하이퍼스레딩이라 하여 1코어에 2개의 스레드를 지원하는 instance들이 많습니다. core든 vCore든 가상화의 차이만 있을 뿐 같은 코어입니다. 여기서 중요한건 코어당 스레드가 1이냐 2이냐 차이인데, 아래의 instance는 8코어이지만 vCPU(vCore,가상 논리 프로세서=스레드)는 16입니다. *spark에 있어서 불리는 코어는 하이퍼스레딩은 지원하지 않으면 코어수 그대로겠지만, 지원한다면 vCPU인 가상 논리 프로세서의 수를 의미합니다. vCPU: 코어 x 코어당 스레드, 논리프로세서라고도 불리며, 하나의 스레드 코어: 물리적인 CPU당 들어 있.. 2021. 12. 20.
[Spark Tuning] Spark의 Partition 개념, spark.sql.shuffle.partitions, coalesce() vs 이번 포스트에는 Spark의 Partition 개념, 종류 및 조작관련 팁, 헷갈릴 만한 개념에 대해 포스트 해보겠습니다. Partition이란? Partition은 RDDs나 Dataset를 구성하고 있는 최소 단위 객체이며, 스파크의 성능과 리소스 점유량을 크게 좌우할 수 있는 RDD의 가장 기본적인 개념입니다. 데이터 파티셔닝은 데이터를 여러 클러스터 노드로 분할하는 메커니즘을 의미합니다. 각 Partition은 서로 다른 노드에서 분산 처리됩니다.즉, 1 Core = 1 Task = 1 Partition입니다. Spark에서는 하나의 최소 연산을 Task라고 표현하는데, 이 하나의 Task에서 하나의 Partition이 처리됩니다. 또한, 하나의 Task는 하나의 Core가 연산 처리합니다. 이처.. 2021. 11. 23.
728x90