2017-06-29 119 views
0

我是apache-spark的新手,在嘗試從本地機器連接到包含Spark工作實例的遠程服務器時遇到一些問題。無法連接到遠程Apache-Spark

我成功地設法可見SSH隧道連接到使用JSCH該服務器,但我得到了以下錯誤:

Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$scope()Lscala/xml/TopScope$; at org.apache.spark.ui.jobs.AllJobsPage.(AllJobsPage.scala:39) at org.apache.spark.ui.jobs.JobsTab.(JobsTab.scala:38) at org.apache.spark.ui.SparkUI.initialize(SparkUI.scala:65) at org.apache.spark.ui.SparkUI.(SparkUI.scala:82) at org.apache.spark.ui.SparkUI$.create(SparkUI.scala:220) at org.apache.spark.ui.SparkUI$.createLiveUI(SparkUI.scala:162) at org.apache.spark.SparkContext.(SparkContext.scala:452) at server.Server$.main(Server.scala:45) at server.Server.main(Server.scala)

當試圖連接到的火花。

這是我的Scala代碼

val conf = new SparkConf().setAppName("Test").setMaster("spark://xx.xxx.xxx.x:7077") 
val sc = new SparkContext(conf) 
val rdd = sc.parallelize(Array(1, 2, 3, 4, 5)).count() 
println(rdd) 

哪裏線45強調了(Server.scala:45)錯誤是一個與new SparkContext(conf)

在本地和遠程機器上,我正在使用scala ~ 2.11.6。在我的本地pom.xml文件中,我輸入了scala : 2.11.6,spark-core_2.10spark-sql_2.10兩者都是~2.1.1。在我的服務器上,我安裝了spark ~ 2.1.1。在服務器上,我還設法通過編輯conf/spark-env.shmaster設置爲本地計算機。

當然,我設法測試服務器的火花,它工作得很好。

我在做什麼錯?

+0

你如何試圖連接?你是用'spark-submit'還是運行'spark-shell'來提交工作? – stefanobaghino

+0

如果你的意思是在服務器上,我使用'spark-shell'運行我的測試。 – AndreaM16

+0

你不需要在'spark-shell'中創建一個新的'SparkContext',只要你看到提示符,就有一個爲你準備好,它的名字是'sc'。 – stefanobaghino

回答

1

從setMaster的文檔:

The master URL to connect to, such as "local" to run locally with one thread, "local[4]" to run locally with 4 cores, or "spark://master:7077" to run on a Spark standalone cluster.

如果從火花集羣中運行它(據我所知你),你應該使用local[n]