前段时间我发布了this question,但结果发现我使用的是本地资源而不是远程资源。
我的远程计算机配置了spark : 2.1.1
,cassandra : 3.0.9
和scala : 2.11.6
。
Cassandra在localhost:9032
处配置,并在localhost:7077
处点火。
Spark master设置为127.0.0.1
,端口设置为7077
。
我能够远程连接到cassandra但无法做到这一点 火花的东西。
连接到远程spark master时,出现以下错误:
错误TransportRequestHandler:为单向消息调用RpcHandler#receive()时出错。
以下是我的设置代码
val configuration = new SparkConf(true)
.setAppName("myApp")
.setMaster("spark://xx.xxx.xxx.xxx:7077")
.set("spark.cassandra.connection.host", "xx.xxx.xxx.xxx")
.set("spark.cassandra.connection.port", 9042)
.set("spark.cassandra.input.consistency.level","ONE")
.set("spark.driver.allowMultipleContexts", "true")
val sparkSession = SparkSession
.builder()
.appName("myAppEx")
.config(configuration)
.enableHiveSupport()
.getOrCreate()
我不明白为什么cassandra工作得很好而火花没有。
造成这种情况的原因是什么?我该如何解决?
答案 0 :(得分:3)
我回答这个问题是为了帮助那些正在努力解决这个问题的人。
它的出现是由Intellij Idea的scala版本和服务器版本之间的不匹配引起的。
当IDE使用scala ~ 2.11.6
时,服务器已scala ~ 2.11.8
。
为了确保使用完全相同的版本,有必要通过执行以下步骤来更改IDE的scala版本:
档案>项目结构> +> Scala SDK>查找并选择服务器的scala版本>如果您尚未安装,请下载>好的>申请>确定
答案 1 :(得分:1)
这可能是拼写错误吗?错误消息报告8990,在您的连接配置中,您有端口8090用于spark。