【问题标题】:Unable to Connect to remote Apache-Spark无法连接到远程 Apache-Spark
【发布时间】:2017-06-29 19:50:55
【问题描述】:

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

我成功地使用JSCH 将 vis SSH 隧道连接到该服务器,但出现以下错误:

线程“主”java.lang.NoSuchMethodError 中的异常: scala.Predef$.$scope()Lscala/xml/TopScope$;在 org.apache.spark.ui.jobs.AllJobsPage.(AllJobsPage.scala:39) 在 org.apache.spark.ui.jobs.JobsTab.(JobsTab.scala:38) 在 org.apache.spark.ui.SparkUI.initialize(SparkUI.scala:65) 在 org.apache.spark.ui.SparkUI.(SparkUI.scala:82) 在 org.apache.spark.ui.SparkUI$.create(SparkUI.scala:220) 在 org.apache.spark.ui.SparkUI$.createLiveUI(SparkUI.scala:162) 在 org.apache.spark.SparkContext.(SparkContext.scala:452) 在 server.Server$.main(Server.scala:45) 在 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)

错误中以(Server.scala:45) 突出显示的行45 是带有new SparkContext(conf) 的行。

在本地和远程机器上我都使用scala ~ 2.11.6。在我的本地pom.xml 文件中,我导入了scala : 2.11.6spark-core_2.10spark-sql_2.10 两个~2.1.1。在我的服务器上,我安装了spark ~ 2.1.1。在服务器上,我还设法通过编辑conf/spark-env.shmaster 设置为本地计算机。

当然,我设法测试了服务器的 spark,它工作得很好。

我做错了什么?

【问题讨论】:

  • 你是如何连接的?您是使用spark-submit 提交工作还是运行spark-shell
  • 如果您的意思是在服务器上,我使用spark-shell 运行我的测试。
  • 你不需要在spark-shell中创建一个新的SparkContext,一看到提示就有一个,名字是sc。跨度>
  • 你的意思是我已经用ssh连接到服务器了,所以不需要创建新的SparkContext?
  • 我放的代码依赖于我的机器,在 Intellij Idea 上。我没有尝试在服务器的 spark-shell 上创建新的上下文。

标签: scala apache-spark ssh


【解决方案1】:

来自 setMaster 的文档:

要连接的主 URL,例如“local”以一个线程在本地运行,“local[4]”以 使用 4 个内核在本地运行,或者在 Spark 独立集群上运行“spark://master:7077”。

如果您从 spark 集群运行它(据我了解),您应该使用 local[n]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 2017-12-23
    • 2017-03-09
    • 2015-01-15
    • 2016-01-13
    • 2017-02-09
    • 2015-04-11
    相关资源
    最近更新 更多