数据信息:
- 您的数据有 N 行;
- 每行 b 字节长;
- 每行属于 G 组中的一个,由数字变量
theGroup
给出;
- 最初,组在整个分区中随机排序。
群集信息:
- 您的
SparkContext
有 E 执行者;
- 每个执行者都有 n 个节点;
- 将1 KB从一个执行程序转移到另一个执行程序 pingTime (包括聚合时间)
- 每个执行器上只有一根输出电缆和一根输入电缆。
你的任务:groupBy(theGroup)
使用Spark, iff ,这不会太长。
大问题:对此操作需要多长时间 T 的估计是什么?
到目前为止的疯狂猜测:我想 T 是:
- 增加 N ( n.E ) - 1 log( N ( n.E )-1)
- idea:因为每个节点上都有 N ( n.E ) - 1行,它们可能必须先排序
- 增加 b ,显然是
- 增加 pingTime
- 增加 G ,但我不知道如何: G ²增加 G < Ñ
- 减少 n
我需要估算 T 的幅度顺序,但我仍然缺少术语(例如 E 和 G 之间的关系)。