无法通过 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,应该可以解决这个问题。
尝试通过 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,应该可以解决这个问题。