Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark spark群集上算法运行时间的度量_Apache Spark - Fatal编程技术网

Apache 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

如何在spark中度量算法的运行时间,尤其是在集群上?我感兴趣的是测量从spark作业提交到集群到提交的作业完成的时间


如果这很重要的话,我主要对使用数据帧的机器学习算法感兴趣。

根据我的经验,一个合理的方法是测量从提交作业到驾驶员完成作业的时间。这是通过在火花动作周围加上时间戳来实现的:

 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

在其处理开始时,将其闭包(在工作节点上执行)的内部连接到累加器。这将从计算中删除调度延迟

要计算算法的运行时间,请执行以下步骤-

  • 建立单/多节点群集

  • 创建一个文件夹并将算法保存在该文件夹中(例如myalgo.scala/java/pyhton)

  • 3.使用sbt构建(您可以按照此链接构建您的程序。)

    4.运行以下命令:SPARK_HOME$/bin/SPARK submit--class“class name”--master“SPARK master URL”“target jar file path”“参数(如果有)

    例如-spark submit--class“GroupByTest”--masterspark://BD:7077 /home/negi/sparksample/target/scala-2.11/spark-sample_2.11-1.0.jar


    在此之后,刷新您的web UI(例如localhost:8080),您将在那里获得有关已执行程序的所有信息,包括运行时信息。

    您正确的意思是什么?您尝试过哪些答案不正确的解决方案?