无法通过 Phantom 连接到 Cassandra (NoHostAvailableException)

Failing to connect to Cassandra through Phantom (NoHostAvailableException)

尝试通过 Phantom 从 Scala 应用程序插入 Cassandra 时收到以下错误代码。

Cassandra 版本捆绑了:dsc-cassandra-3.0.1

[error] (run-main-0) com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1:9042 (com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces), localhost/0:0:0:0:0:0:0:1:9042 (com.datastax.driver.core.TransportException: [localhost/0:0:0:0:0:0:0:1:9042] Cannot connect)) com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1:9042 (com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces), localhost/0:0:0:0:0:0:0:1:9042 (com.datastax.driver.core.TransportException: [localhost/0:0:0:0:0:0:0:1:9042] Cannot connect))

我已经阅读了 Whosebug 中的其他此类问题,但没有找到解决我的问题的方法。

此外,我没有注意到任何其他错误日志中存在以下内容:

我读对了吗localhost/127.0.0.1:9042

这不归结为 127.0.0.1/127.0.0.1:9402 - 这可以解释为什么它找不到正确的端口开放。

现在沿着这条路走下去,试图弄清楚这是否是一回事。

已确保 Cassandra 是 运行。

I also ran sudo lsof -i -P | grep -i "listen" with the following output (just pulling out the java ones):

java 4053 dan_mi_sun 85u IPv4 0xdbcce7039c377b9d 0t0 TCP localhost:7199 (LISTEN)
java 4053 dan_mi_sun 86u IPv4 0xdbcce703986952cd 0t0 TCP localhost:53680 (LISTEN)
java 4053 dan_mi_sun 92u IPv4 0xdbcce7039869b46d 0t0 TCP localhost:7002 (LISTEN)
java 4053 dan_mi_sun 145u IPv4 0xdbcce7039c37846d 0t0 TCP localhost:9042 (LISTEN)

对可能出现的问题有任何想法吗?

找到了这个,但不确定是否相关:

https://datastax-oss.atlassian.net/browse/JAVA-897

如果这里有用的话是build.sbt

name := "SuperChain"

organization := "org.dyne.danielsan"

version := "0.1.0-SNAPSHOT"

scalaVersion := "2.11.7"

crossScalaVersions := Seq("2.10.4", "2.11.2")

resolvers ++= Seq(
  "Typesafe repository snapshots" at "http://repo.typesafe.com/typesafe/snapshots/",
  "Typesafe repository releases" at "http://repo.typesafe.com/typesafe/releases/",
  "Sonatype repo"                    at "https://oss.sonatype.org/content/groups/scala-tools/",
  "Sonatype releases"                at "https://oss.sonatype.org/content/org.dyne.danielsan.superchain.data.cassandra.init.repositories/releases",
  "Sonatype snapshots"               at "https://oss.sonatype.org/content/org.dyne.danielsan.superchain.data.cassandra.init.repositories/snapshots",
  "Sonatype staging"                 at "http://oss.sonatype.org/content/org.dyne.danielsan.superchain.data.cassandra.init.repositories/staging",
  "Java.net Maven2 Repository"       at "http://download.java.net/maven/2/",
  "Twitter Repository"               at "http://maven.twttr.com",
  "Wedsudos Bintray Repo"            at "https://dl.bintray.com/websudos/oss-releases/"
)

libraryDependencies ++= Seq(
  "com.websudos" %% "phantom-dsl" % "1.12.2",
  "org.scalatest" %% "scalatest" % "2.2.1" % "test",
  "org.scalacheck" %% "scalacheck" % "1.11.5" % "test"
)

initialCommands := "import org.dyne.danielsan.superchain._"

这个错误:com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces 让我相信你使用的 phantom 版本没有使用 datastax java-driver 3.0+。由于您要连接到 3.0 集群,因此需要一个能够理解模式表的 3.0 驱动程序(system_schema.* 而不是 system.schema*)。如果您升级到 phantom-dsl 1.21.0,应该可以解决这个问题。