我在Eclipse中设置了一个Maven项目,其中包含一个使用Apache Spark的应用程序。应用程序执行迭代步骤以得出答案。最终我想在群集上部署它。
问题是,当我直接在Eclipse中运行程序时,程序的迭代部分需要57秒。当我使用spark-submit.cmd
脚本运行它时,需要152秒!为什么是这样?两者都使用完全相同的配置设置运行,local[*]
为主。
Eclipse运行的有效命令行是这条巨大的行http://pastebin.com/5nybz1N3
spark-submit
的有效命令是
spark-submit --class org.comanche.yukon.Yukon yukonjar.jar
这是为什么?可能是spark-submit
建立了一些实际的网络连接而且我得到了很多延迟吗?我该如何找到?
我也从OutOfMemoryError
获得了spark-submit
,但没有从Eclipse运行。{这可能是相关的吗?
我唯一的配置就是这样,就像我创建SparkContext
:
public static void main(String[] args) {
SparkConf conf = new SparkConf()
.setAppName("yukon")
.setMaster("local[*]")
.set("spark.driver.maxResultSize", "0");
jsc = new JavaSparkContext(conf);
....
我正在使用具有12个逻辑核心的系统。
eclipse的JvM设置是
-startup
plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300.v20150602-1417
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms256m
-Xmx1024m
感谢您的帮助!