【问题标题】:Spark: Increase the number of tasks/partitionsSpark:增加任务/分区的数量
【发布时间】:2018-01-29 05:30:22
【问题描述】:

Spark 中的任务数量由阶段开始时的 RDD 分区总数决定。比如Spark应用从HDFS读取数据时,Hadoop RDD的分区方式继承自MapReduce中的FileInputFormat,受HDFS块大小、mapred.min.split.size的值、压缩方式等影响.

截图中的任务耗时 7、7、4 秒,我想让它们平衡。另外,stage分为3个task,有什么方法可以指定Spark的partitions/tasks个数吗?

【问题讨论】:

  • 你可以先做.repartition(200)操作:spark.apache.org/docs/latest/… 不过,输入的大小确实很小,因此HDFS块的数量也会很少。为了 HDFS 的最佳性能,块应该大约等于块大小。您可以在 Spark 中重新分区以在更多执行者之间分配数据。

标签: hadoop apache-spark rdd


【解决方案1】:

任务依赖于分区。可以为RDD设置partitioner,在partitioner中可以设置partition的个数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 2020-01-27
    • 1970-01-01
    相关资源
    最近更新 更多