2017-06-29 122 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]