Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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

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
Scala Spark GraphX Spark shell与Spark submit性能差异_Scala_Apache Spark_Spark Graphx - Fatal编程技术网

Scala Spark GraphX Spark shell与Spark submit性能差异

Scala Spark GraphX Spark shell与Spark submit性能差异,scala,apache-spark,spark-graphx,Scala,Apache Spark,Spark Graphx,我们已经编写了一些代码,通过Scala中使用Spark 1.6.1和Scala 2.10编写的GraphX连接和链接数据集 如果我们在spark shell中运行此代码,它将在30分钟内完成,每个执行器有10个执行器、10g内存和5个cpu 如果我们在一个装有spark submit的胖罐子中运行它,那么这个过程就会出现内存不足的错误,需要一个半小时才能完成 有人知道这是什么原因吗 有人知道SparkContext和SQLContext是如何在shell中设置的吗?我们在设置自己的上下文时是否遗

我们已经编写了一些代码,通过Scala中使用Spark 1.6.1和Scala 2.10编写的GraphX连接和链接数据集

如果我们在spark shell中运行此代码,它将在30分钟内完成,每个执行器有10个执行器、10g内存和5个cpu

如果我们在一个装有spark submit的胖罐子中运行它,那么这个过程就会出现内存不足的错误,需要一个半小时才能完成

有人知道这是什么原因吗


有人知道SparkContext和SQLContext是如何在shell中设置的吗?我们在设置自己的上下文时是否遗漏了任何可能导致spark submit运行如此糟糕的问题的内容?

应该没有区别

检查
spark submit
设置-可能其中一些设置不正确,并且
spark submit
的执行器或内存数量较低


打开Spark Web UI,检查数据是否扭曲,所有配置是否正确,应该没有差异

检查
spark submit
设置-可能其中一些设置不正确,并且
spark submit
的执行器或内存数量较低


打开Spark Web UI,检查数据是否有偏差,以及所有配置是否正确

我不久前就解决了这个问题,然后又碰到了我的问题。所以我的想法会随着我如何修复它而更新。问题不是spark submit和spark shell之间的区别,而是我们正在执行的代码结构的区别

在Shell中,我将代码分解并逐行执行,这使得Spark生成的代码快速高效

使用Spark Submit,我们打包了代码并将其滚动到具有继承性的类中,以使代码更易于共享和重用,但这导致Spark生成的代码凌乱且效率低下。当我们删除了大部分继承并编写了更简单、功能更强大的代码时,性能又回到了快速高效的状态


因此,这里的教训是确保不要过多地面向对象编程应用程序,少继承是可以的,但是您应该尽可能保持代码的简单性和功能性,以便Spark能够轻松地生成在集群上执行的快速高效的代码。

我不久前就明白了这一点,然后又碰到了我的问题。所以我的想法会随着我如何修复它而更新。问题不是spark submit和spark shell之间的区别,而是我们正在执行的代码结构的区别

在Shell中,我将代码分解并逐行执行,这使得Spark生成的代码快速高效

使用Spark Submit,我们打包了代码并将其滚动到具有继承性的类中,以使代码更易于共享和重用,但这导致Spark生成的代码凌乱且效率低下。当我们删除了大部分继承并编写了更简单、功能更强大的代码时,性能又回到了快速高效的状态


因此,这里的教训是确保不要过多地面向对象编程应用程序,少继承是可以的,但是,您应该尽可能保持代码的简单性和功能性,以便Spark能够轻松生成快速高效的代码在集群上执行。

我们已经检查了设置,它们是相同的,即使我们给Spark提交的资源比shell多,它仍然会遇到问题。另外,如果数据有偏差,它会影响shell并以同样的方式提交?@AndyLong您能在Spark Web UI中检查参数值吗?可能会覆盖某些设置,这就是为什么我想检查来自Web UI的信息。我们已经检查了设置,它们是相同的,即使我们给spark提交的资源比shell多,它仍然会遇到问题。另外,如果数据被扭曲,它会影响shell并以同样的方式提交?@AndyLong您可以检查Spark Web UI中的参数值吗?可能某些设置被覆盖,这就是为什么我要检查Web UI中的信息