hadoop - 자바 - 파이 스파크



mapreduce split과 spark paritition의 차이점 (1)

Hadoop / MapReduce 및 Spark로 작업 할 때 데이터 분할에 중요한 차이점이 있습니까? 둘 다 HDFS (TextInputFormat)에서 작동하므로 이론적으로 동일해야합니다.

데이터 파티셔닝 절차가 다를 수있는 경우가 있습니까? 어떤 통찰력이라도 제 연구에 큰 도움이 될 것입니다.

감사


Hadoop / mapreduce 및 Spark로 작업 할 때 데이터 파티셔닝에서 중요한 차이가 있습니까?

Spark은 자체 포맷터와 함께 동일한 Hadoop InputFormat API사용 하므로 모든 hadoop I / O 포맷을 지원합니다. 따라서 Spark 입력 파티션은 기본적으로 Hadoop / MapReduce 입력 분할과 동일한 방식으로 작동합니다 . 파티션의 데이터 크기는 런타임에 구성 할 수 있으며 repartition , coalescerepartitionAndSortWithinPartition 과 같은 변환을 제공합니다 repartitionAndSortWithinPartition 을 사용하면 계산할 파티션 수를 직접 제어 할 수 있습니다.

데이터 파티셔닝 절차가 다를 수있는 경우가 있습니까?

Hadoop 외에도 I / O API Spark에는 Spark specific 인 DataSet/DateFrame (RDD 상단에있는 고급 기능)을 직접 반환하는 다른 지능형 I / O 형식 (예 : Databricks CSVNoSQL DB Connectors )이 있습니다 .

Non-Hadoop 소스에서 데이터를 읽을 때 스파크 파티션의 핵심 포인트

  • 파티션의 최대 크기는 궁극적으로 커넥터에 의해 결정됩니다.
    • S3의 경우 속성은 fs.s3n.block.size 또는 fs.s3.block.sizefs.s3.block.size .
    • 카산드라 속성spark.cassandra.input.split.size_in_mb 입니다.
    • Mongo 소품은 spark.mongodb.input.partitionerOptions.partitionSizeMB 입니다.
  • 기본적으로 파티션 수는 max(sc.defaultParallelism, total_data_size / data_block_size) 입니다. 클러스터의 가용 코어 수의 몇 배가 sc.parallaize() 와 같은 파티션 수를 out partions param으로 sc.parallaize() 합니다.

더보기 .. 링크 1





hdfs