Apache spark spark群集上算法运行时间的度量
如何在spark中度量算法的运行时间,尤其是在集群上?我感兴趣的是测量从spark作业提交到集群到提交的作业完成的时间Apache spark spark群集上算法运行时间的度量,apache-spark,Apache Spark,如何在spark中度量算法的运行时间,尤其是在集群上?我感兴趣的是测量从spark作业提交到集群到提交的作业完成的时间 如果这很重要的话,我主要对使用数据帧的机器学习算法感兴趣。根据我的经验,一个合理的方法是测量从提交作业到驾驶员完成作业的时间。这是通过在火花动作周围加上时间戳来实现的: val myRdd = sc.textFile("hdfs://foo/bar/..") val startt = System.currentTimeMillis val cnt = myRdd.cou
如果这很重要的话,我主要对使用数据帧的机器学习算法感兴趣。根据我的经验,一个合理的方法是测量从提交作业到驾驶员完成作业的时间。这是通过在火花动作周围加上时间戳来实现的:
val myRdd = sc.textFile("hdfs://foo/bar/..")
val startt = System.currentTimeMillis
val cnt = myRdd.count() // Or any other "action" such as take(), save(), etc
val elapsed = System.currentTimeMillis - startt
请注意,初始的sc.textFile()
是惰性的——即,它不会导致spark驱动程序将作业提交到集群。因此,是否在计时中包含这一点并不重要
考虑结果:由于spark调度器和集群上的现有负载,上述方法容易发生变化。更精确的方法包括spark工作编写
System.currentTimeMillis
在其处理开始时,将其闭包(在工作节点上执行)的内部连接到累加器。这将从计算中删除调度延迟 要计算算法的运行时间,请执行以下步骤-
在此之后,刷新您的web UI(例如localhost:8080),您将在那里获得有关已执行程序的所有信息,包括运行时信息。您正确的意思是什么?您尝试过哪些答案不正确的解决方案?