[Spark] 8. Spark with AWS
·
데이터/Spark
Spark with AWSAWS에서 Spark를 실행하기 위해서는 *EMR(Elastic MapReduce) 위에서 실행하는 것이 일반적*EMR?AWS의 Hadoop 서비스Hadoop(Yarn), Spark, Hive, Notebook 등이 설치되어 제공되는 서비스EC2 서버들을 worker node로 사용하고 S3를 HDFS로 사용AWS 내의 다른 서비스와 연동이 쉽다!Spark on EMRAWS의 EMR 클러스터 생성EMR 생성 시 Spark를 소프트웨어로 선택생성 방법EMR 클러스터 생성EMR 콘솔로 이동 및 Create Cluster 선택Cluster Name 지정소프트웨어 구성Spark가 포함된 EMR 릴리즈 선택Spark 및 필요 애플리케이션이 포함된 애플리케이션 선택하드웨어 구성Master ..
[Spark] 7. Partitioning & Bucketing
·
데이터/Spark
Partitioning & BucketingSpark와 같은 분산 데이터 처리 시스템에서 데이터를 분할하는 개념데이터의 분산 저장 및 쿼리 성능 최적화에서 중요한 역할Partitioning데이터를 물리적으로 여러 파티션에 나누어 저장하는 방식Spark에서 파티션은 데이터가 클러스터의 여러 노드에 분산되어 처리되는 기본 단위일반적으로 연산 최적화와 병렬 처리를 위해 사용됨특징파티셔닝 기준 : 데이터를 특정 컬럼을 기준으로 나눔 -> 적절한 cardinality를 갖는 컬럼자동 또는 수동 설정repartition()이나 coalesce()같은 함수를 통해 파티션 수를 설정하거나 변경 가능데이터를 특정 컬럼에 맞게 파티셔닝 하려면 partitionBy()를 사용사용 목적데이터가 커질 때 병렬 처리 성능을 개선..
[Spark] 6. Spark Execution Plan
·
데이터/Spark
Spark 실행 계획Apache Spark는 분산 데이터 처리 엔진으로, 쿼리를 최적화하고 실행하기 위해 여러 단계를 거침그렇기에 Spark에서 작업이 어떻게 실행되는지 이해하는 것은 성능 최적화에 매우 중요!!Transformation vs. ActionTransform기존 데이터를 기반으로 새로운 데이터를 정의하는 연산지연 실행(Lazy Execution) 방식으로 동작 -> 실제 계산은 Action이 호출될 때까지 실행 X지연 실행을 통해 실행 계획 최적화 가능종류Narrow Dependencies : 다른 파티션의 데이터를 필요로 하지 않고, 각 파티션에서 독립적으로 작업을 수행할 수 있는 연산예시selectfiltermapWide Dependnecies : 여러 파티션에서 데이터를 가져와야 하며..