Data Engineering/Apache Spark
-
Spark Join Tuning & Key Salting / Part 3Data Engineering/Apache Spark 2022. 3. 5. 15:40
1. Sort Merge Join 1-1. 개요 1-2. 이상적인 성능을 발휘하려면 2. Broadcast Join 2-1. 개요 3. Shuffle Hash Join 3-1. 개요 효율적인 Join을 방해하는 것들 Data Skewness를 해결하려면? Key Salting Key Salting 이란? Salting Method 예제 Reference Spark에서 join을 수행하는 경우는 크게 두 가지로 나눌 수 있다. (1) 큰 테이블과 작은 테이블을 조인 또는 (2) 큰 테이블과 큰 테이블을 조인. Spark은 join을 수행하기 위해 Sort Merge Join, Broadcast Join, Shuffle Hash Join 등의 방법을 제공한다. 핵심 키워드 : sort merge join, ..
-
Spark Partitions Tuning / Part 02Data Engineering/Apache Spark 2022. 3. 4. 14:57
목차 Partitioning 이란? Partitioning의 종류 Partitioning을 안할 경우 Partitioning을 할 경우 주의사항 파티셔닝을 사용하면 도움이 되는 연산들 coalesce와 repartition 차이점 Partition의 종류 (Read, Write, Shuffle) Input Partition Output Partition Shuffle Partition Shuffle Partition Tuning 최적화 실험 실험 구성 예시 코드 실험 1: 코어 수에 맞게 파티션 수 설정(대조군) 결과 실험 2: 파티션 수 6배 증대 결과 실험 3: 쿼리 최적화 결과 실험 4: 최적화 후 코어당 메모리 감소 최적화 실험 결론: 최적화 시 고려할 점 참고 각 실험별 정리 최종 결론 Refe..
-
Spark 기본기(Executor Tuning) / Part 01Data Engineering/Apache Spark 2022. 3. 3. 13:47
1 클러스터 관리자 유형 1.1 Standalone 1.2 Apache Mesos 1.3 Hadoop YARN 2 Spark의 Memory 관리 2.1 Existing memory management 2.2 Storage memory management 3 Spark를 띄울때 가장 기본적으로 설정해야하는 요소.Driver와 Executor의 사이즈와 개수는 어떻게 정하는 것이 좋을까? 3.1 EXECUTOR의 역할 3.2 다수의 작은 executor가 좋을까? VS 소수의 큰 executor가 좋을까? 3.2.1 다수의 작은 executor의 두가지 문제 3.2.2 소수의 큰 executor의 두가지 문제 3.2.3 효율적 세팅을 위해서 3.3 결론 4 Spark Application 실행 과정(흐름) ..
-
spark-submit 하드웨어 옵션 체크하기Data Engineering/Apache Spark 2022. 2. 7. 14:44
페이지 참고사항 (계산식) https://aws.amazon.com/ko/blogs/big-data/best-practices-for-successfully-managing-memory-for-apache-spark-applications-on-amazon-emr/#:~:text=For example%2C the default for,application based on the workloads. 계산된 옵션 목록 executor-cores executor-memory spark.driver.cores driver-memory num_executors spark.default.parallelism Linux Cpu, Memory 확인 방법 # Cpu core 확인 lscpu # Memory 확인 free..