连接到远程卡桑德拉我有一些麻烦,同时试图使用Apache的星火和斯卡拉连接到远程卡桑德拉。我以前用同样的方法成功地连接了MongoDb。无法通过星火+斯卡拉
这一次,我真的不明白,为什么我收到以下错误:
Failed to open native connection to Cassandra at {127.0.0.1}:9042
我想这是一个依赖和版本问题,但我没能找到与此相关的问题,特别是什么,无论是文件还是其他问题。
我基本上设法通过SSH隧道连接到我的服务器使用jsch和所有正常工作。然后,我能够成功连接到使用SparkConnectionFactory.scala当地Apache的火花:
package connection
import org.apache.spark.{SparkConf, SparkContext}
class SparkConnectionFactory {
var sparkContext : SparkContext = _
def initSparkConnection = {
val configuration = new SparkConf(true).setMaster("local[8]")
.setAppName("my_test")
.set("spark.cassandra.connection.host", "localhost")
.set("spark.cassandra.input.consistency.level","ONE")
.set("spark.driver.allowMultipleContexts", "true")
val sc = new SparkContext(configuration)
sparkContext = sc
}
def getSparkInstance : SparkContext = {
sparkContext
}
}
,把它在我的Main.scala:
val sparkConnectionFactory = new SparkConnectionFactory
sparkConnectionFactory.initSparkConnection
val sc : SparkContext = sparkConnectionFactory.getSparkInstance
但是,当我尝试使用以下方法选择Cassandra表中的所有项目:
val rdd = sc.cassandraTable("my_keyspace", "my_table")
rdd.foreach(println)
我收到上面写的错误。
在我的服务器上我安装了Scala ~v2.11.6
,Spark ~v2.1.1
,SparkSQL ~v2.1.1
。当然,我有8个内核和1.在复制因子我pom.xml
我:
. . .
<properties>
<scala.version>2.11.6</scala.version>
</properties>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
. . .
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10 -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.datastax.spark/spark-cassandra-connector_2.10 -->
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.11</artifactId>
<version>2.0.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.10 -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
</dependencies>
是我的问题导致的冲突版本?如果是的话,我该如何解决这个问题?如果不是,提示什么是造成它的原因?
在此先感谢。
在端口{} 127.0.0.1:9042将是连接到本地主机,而不是远程 –
@ cricket_007不,我以上所述,我m使用jsch连接到服务器。当你这样做的时候,你可以从localhost访问所有的东西。我能够使用spark,mongo以及更多类似的工具和服务。 – AndreaM16
然后您不通过SSH转发正确的端口 –