纱线上的火花任务太多[重复]
Posted
技术标签:
【中文标题】纱线上的火花任务太多[重复]【英文标题】:Too many tasks in spark on Yarn [duplicate] 【发布时间】:2017-12-26 09:15:31 【问题描述】:我使用 spark-sql 读取一个大表并生成 100,000 个任务。
我知道我可以设置 num_of_partitions 但它对小表也是如此。
Is there any way to limit the size of each partition ?
【问题讨论】:
【参考方案1】:目前 Spark 不支持分区大小限制。如果要减少任务数量,则需要将分区号设置为较小的数字。
现在通常使用的技巧是根据数据大小动态设置分区数。通常,您希望您的分区等于 HDFS 块大小 (128MB)。如果您知道数据每行的大小,则可以估计每个分区要保留多少行。假设它的值为 X。
然后你可以设置 num_of_partitions 为
dataframe.count / x
【讨论】:
但是我想在不同的表上使用相同的代码,大表比小表需要更多的分区。 dataframe.count / x 会设置不同的分区号。现在唯一的事情是你需要想出每个表的行大小(x)。这个数字可以参数化。在这种情况下,相同的代码将适用于大小表 哦,我知道你的意思...但是如果数字太大,count 会太贵,对吧? 计数通常不是一项昂贵的操作,因为它不需要加载所有数据。因此,在读取数据后,如果您计算元素的数量,与工作时间相比,它根本不会昂贵。以上是关于纱线上的火花任务太多[重复]的主要内容,如果未能解决你的问题,请参考以下文章
纱线上的哪个目录触发应用程序将其日志输出到?每个节点中的 spark.eventLog.dir 或 var/log/?