无法连接到远程Apache-Spark

时间:2017-06-29 11:29:52

标签: scala apache-spark ssh

我是apache-spark的新手,我在尝试从本地计算机连接到包含Spark工作实例的远程服务器时遇到了一些问题。

我成功设法使用JSCH将SSH隧道连接到该服务器,但是我收到以下错误:

  

线程中的异常" main" java.lang.NoSuchMethodError:   。scala.Predef $ $范围()Lscala / XML / TopScope $;在   org.apache.spark.ui.jobs.AllJobsPage。(AllJobsPage.scala:39)at at   org.apache.spark.ui.jobs.JobsTab。(JobsTab.scala:38)at 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 at   org.apache.spark.SparkContext。(SparkContext.scala:452)at   server.Server $ .main(Server.scala:45)at   server.Server.main(Server.scala)

尝试连接Spark时。

这是我的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。在我的服务器上,我安装了master。在服务器上,我还设法通过编辑conf/spark-env.shforall(w in 1..num_workers) ( if jobtype[job] == "NC" then assignment[job,(w mod 2 ==0)]=1 else assignment[job,(w mod 2 !=0)]=1 endif ) 设置为本地计算机。

当然,我设法测试了服务器的火花,它运行得很好。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

来自setMaster的文档:

  

要连接的主网址,例如" local"用一个线程在本地运行," local [4]"至      在本地运行4核,或者#34; spark:// master:7077"在Spark独立集群上运行。

如果你从spark群集中运行它(据我所知),你应该使用local[n]