查询1)
需要认真的帮助!我在数据集上运行不同类型的特征工程,并尝试通过调整不同类型的Spark属性来进行基准测试。
我不知道单个机器的运行速度比3节点集群更快,尽管代码中的大多数操作都是分布式的。
我通过不同方式运行收集的日志是 -
远程Spark基准测试(4个节点集群,1个驱动程序,3个工作程序) -
群集详细信息:12 GB RAM,每个6核。
中等数据 - > 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秒。 (在单个驱动程序节点[local]上)
3)特征工程管道完成时间:323.6546362755467秒。 (在我的笔记本电脑上 - 16GB RAM和8个内核)。
查询2)
以下是从Spark UI获取的相同代码的事件时间表,您能否提供一些有关并行任务之间存在两个巨大差距的见解?这是否意味着,那个时候没有发生任何操作?我是Spark UI监控的新手,有人可以建议我需要监控的其他方面进一步优化吗?