java Apache Spark:使用sparksubmit比运行“单机版”慢3倍
我在Eclipse中设置了一个Maven项目,其中包含一个使用ApacheSpark的应用程序。应用程序执行迭代步骤以获得答案。最后,我想在集群上部署它
问题是,当我直接在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
建立了一些实际的网络连接,而我得到了很多延迟?我怎么知道
我还从spark-submit
获得了OutOfMemoryError
,但不是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
谢谢你的帮助
共 (0) 个答案