2016-03-16 14 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

相關問題