我能说......么?
Spark任务的数量等于Spark分区的数量?
执行程序运行一次(执行程序内部的批处理)是否等于一项任务?
每个任务只产生一个分区?
(重复 1。)
YoY*_*oYo 10
并行度或可以并发运行的任务数由以下设置:
实际并行度是较小的
executors * cores - 它给出了可用于运行任务的插槽数量partitions - 每当插槽打开时,每个分区都会转换为一个任务。在同一个执行器上运行的任务将共享同一个 JVM。这由广播功能使用,因为您只需要每个 Executor 的广播数据的一个副本,以便所有任务都能够通过共享内存访问它。
您可以在同一台机器或不同的机器上运行多个执行程序。Executors 是可扩展性的真正手段。
请注意,每个任务占用一个线程 ¹,并假定分配给一个核心 ²。
所以 -
- Spark任务数是否等于Spark分区数?
否(见前文)。
- 执行程序运行一次(执行程序内部的批处理)是否等于一项任务?
Executor 作为运行任务的环境启动。多个任务将在该 Executor(多线程)中并发运行。
- 每个任务只产生一个分区?
对于一个任务,它是一个分区输入,一个分区输出。但是,在任务之间可能会发生重新分区或洗牌/排序。
- Spark任务的数量等于Spark分区的数量?
与 (1.) 相同
(¹) 假设是在您的任务中,您自己不是多线程(永远不要这样做,否则核心估计将被关闭)。
(²) 请注意,由于超线程,每个物理核心可能有多个虚拟核心,因此每个核心可以有多个线程。您甚至可以在没有超线程的情况下在单个内核上处理多个线程(2 到 3 个)。
分区是 RDD 的一项功能,仅在设计时(调用操作之前)可用。
任务是Spark 应用程序中TaskSetper Stageper的一部分。ActiveJob
Spark任务的数量是否等于Spark分区的数量?
是的。
执行器运行一次(执行器内部的批处理)等于一个任务吗?
这递归地使用“执行器”,对我来说没有多大意义。
每个任务只产生一个分区?
几乎。
每个任务都会生成一个针对分区中的数据执行代码(为其创建代码)的输出。
Spark任务的数量等于Spark分区的数量吗?
几乎。
单阶段Spark任务的数量等于RDD分区的数量。
| 归档时间: |
|
| 查看次数: |
4499 次 |
| 最近记录: |