Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
Scala Apache zepplin spark作业运行速度比spark submit快_Scala_Apache Spark_Apache Zeppelin - Fatal编程技术网

Scala Apache zepplin spark作业运行速度比spark submit快

Scala Apache zepplin spark作业运行速度比spark submit快,scala,apache-spark,apache-zeppelin,Scala,Apache Spark,Apache Zeppelin,我想知道我在Zepplin一段中写的spark作业执行速度比我自己运行spark submit快得多是否有任何原因 我基本上在Zepplin和spark submit中使用相同的配置(执行器、内存),但在执行时间上有很大差异 两者都运行在同一个独立的spark群集上 什么可以解释这种差异?我可以想到两件事可能导致这种差异 使用zappelin时,您已经有了一个可能正在使用的spark上下文。当你进行spark提交时,你会创建一个需要一些时间的新提交 即使您的计时打折了spark上下文(例如,您只

我想知道我在Zepplin一段中写的spark作业执行速度比我自己运行spark submit快得多是否有任何原因

我基本上在Zepplin和spark submit中使用相同的配置(执行器、内存),但在执行时间上有很大差异

两者都运行在同一个独立的spark群集上


什么可以解释这种差异?

我可以想到两件事可能导致这种差异

  • 使用zappelin时,您已经有了一个可能正在使用的spark上下文。当你进行spark提交时,你会创建一个需要一些时间的新提交
  • 即使您的计时打折了spark上下文(例如,您只计算实际工作的时间),在zappelin中,您可能会在当前工作之前做一些其他工作。这些可能会导致各种缓存发生。一些例子包括:

    • OS/hadoop可能会缓存您正在读取的文件,因为您在上一个单元格中读取了这些文件
    • 您可能正在对一些RDD执行之前的洗牌操作,以便缓存它
    • 您可能有一个显式缓存
    • 您可能已经在前一个单元格中对用于联接的数据帧进行了正确分区
    • 名单还在继续

  • 作业的代码是什么?@T.Gawęda我不认为是代码,可能是因为我使用的zepplin spark context(sc),sqlContext可能与我的spark Conference不同。您是否考虑启动/关闭时间?我想齐柏林飞艇实例已经在运行了,所以没有启动时间。如果您还没有尝试使用内部Scala timingYea,我几乎考虑了所有这些可能性,但它没有解释为什么写入db(约1.48亿条记录)所花费的时间比运行spark submit要少得多。相同的代码,但在Zepplin中作为不同的段落编写。我可以在Spark UI中看到每个任务需要多长时间。当您进行评测时,可以确保加载评测之外的每个外部元素。例如,在程序中调用spark.range(100).show(),它将加载spark上下文,然后围绕作业本身包装一个计时器。另一方面,在zepplin中,确保只运行相关单元格而不运行其他单元格,然后进行比较。鉴于此,您应该看到相同的性能。当然,我假设两个测试使用相同的配置。