2016-03-16 16 views
1

我已经在虚拟机(使用gettyimages Docker image)安装了Spark 1.6,我想要连接到它。在本地运行Spark,从sbt添加jar?

我的Spark应用程序使用Cassandra,如果我使用setMaster("local[2]")运行它,它将运行得很好。但是,如果让我选择setMaster(spark://localhost:7077)(本地主机是在这里我星火主人的“地址”),它会与一个

java.lang.IllegalStateException: unread block data 

异常崩溃。我在github上找到了一个有类似问题的人,并且建议使用addJar(...)将必要的库罐添加到SparkContext中。

目前,我使用SBT和我做

libraryDependencies ++= Seq(
    "com.datastax.spark" %% "spark-cassandra-connector" % "1.6.0-M1" 
) 

例如,添加星火卡桑德拉连接上下文。但是,在使用sbt时,jar文件并不在我的存储库中。另一方面,addJar(...)需要指向jar文件的路径。

解决此问题的最佳方法是什么?

回答

1

查看关于Advanced Dependency Management的文档。基本上,你使用--packages命令行选项​​,它做你想做的事

+0

我不能跟随,对不起。我没有做任何明确的spark-submit,但是我创建了一个新的SparkConf()并且设置了主控。我在做什么完全错误? – navige

+0

也许 - 尝试使用'spark-submit'来代替。请参阅http://spark.apache.org/docs/latest/submitting-applications.html –

+0

完美的作品!谢谢!我现在将尝试使用'sbt-spark-submit'从sbt运行它。 – navige

相关问题