Query 1)

需要认真的帮助!我正在数据集上运行不同类型的特征工程,并尝试通过调整不同类型的Spark属性来进行基准测试 .

我不知道单个机器比3节点集群工作得更快出错,尽管代码中的大部分操作都是分布式的 .

我通过不同方式运行收集的日志是 -

Remote Spark Benchmarking (4 node cluster, 1 driver, 3 workers) -

Cluster details: 12 GB RAM, 6 cores each.

中等数据 - > 1,00,000个样本(10万行)[数据放在本地文件系统中,相同路径,所有工作节点上的数据相同]

运行 -

1)特征工程管道完成的时间:482.20375990867615秒; --num-executors 3 --executor-cores 5 --executor-memory 4G

2)特征工程管道完成的时间:467.3759717941284秒; --num-executors 10 --executor-cores 6 --executor-memory 11G

3)特征工程管道完成时间:459.885710477829秒; --num-executors 3 --executor-cores 6 --executor-memory 8G

4)特征工程管道完成时间:476.61902809143066秒; --num-executors 3 --executor-cores 5 --executor-memory 4G --conf spark.memory.fraction = 0.2

5)特征工程管道完成时间:575.9314386844635秒; --num-executors 3 --executor-cores 5 --executor-memory 4G --conf spark.default.parallelism = 200

中等数据 - > 1,00,000个样本(10万行)[数据放在本地文件系统中]

1)特征工程管道完成的时间:594.1818737983704秒 .

2)特征工程管道完成的时间:528.6015181541443秒 . (在单个驱动程序节点上[本地])

3)特征工程管道完成的时间:323.6546362755467秒 . (在我的笔记本电脑上 - 16GB RAM和8个核心) .

Query 2)

以下是从Spark UI获取的相同代码的事件时间表,您能否提供一些有关并行任务之间存在两个巨大差距的见解?这是否意味着,那个时候,没有发生任何操作?我是Spark UI监控的新手,有人可以建议我需要监控的其他方面进一步优化吗?

Event Timeline