【发布时间】:2016-12-11 22:16:31
【问题描述】:
我无法连接到 cassandra。
我正在尝试使用 datastax node.js cassandra 驱动程序连接到 s-cassandra(这是一个 stubbed cassandra,可以查看 here)。
出于某种原因,将“127.0.0.1:8042”作为联系点传递给驱动程序 导致DriverInternalError:
(有时它确实随机工作,我还没有弄清楚为什么有时它会,有时我不会..)
DriverInternalError 我得到:
{"name": "DriverInternalError",
“堆”: ”...”,
"message": "本地数据中心不能 下定决心”,
"info": "表示驱动程序内部或某个 Cassandra 主机。” }
这是我从 Cassandra Driver 的日志中看到的:
log event: info -- Adding host 127.0.0.1:8042
log event: info -- Getting first connection
log event: info -- Connecting to 127.0.0.1:8042
log event: verbose -- Socket connected to 127.0.0.1:8042
log event: info -- Trying to use protocol version 4
log event: verbose -- Sending stream #0
log event: verbose -- Sent stream #0 to 127.0.0.1:8042
{"name":"application-storage","hostname":"Yuris-MacBook-Pro.local","pid":1338,"level":30,"msg":"Kafka producer is initialized","time":"2016-08-05T12:53:53.124Z","v":0}
log event: verbose -- Received frame #0 from 127.0.0.1:8042
log event: info -- Protocol v4 not supported, using v2
log event: verbose -- Done receiving frame #0
log event: verbose -- disconnecting
log event: info -- Connection to 127.0.0.1:8042 closed
log event: info -- Connecting to 127.0.0.1:8042
log event: verbose -- Socket connected to 127.0.0.1:8042
log event: info -- Trying to use protocol version 2
log event: verbose -- Sending stream #0
log event: verbose -- Sent stream #0 to 127.0.0.1:8042
log event: verbose -- Received frame #0 from 127.0.0.1:8042
log event: info -- Connection to 127.0.0.1:8042 opened successfully
log event: info -- Connection pool to host 127.0.0.1:8042 created with 1 connection(s)
log event: info -- Control connection using protocol version 2
log event: info -- Connection acquired to 127.0.0.1:8042, refreshing nodes list
log event: info -- Refreshing local and peers info
log event: verbose -- Sending stream #1
log event: verbose -- Done receiving frame #0
log event: verbose -- Sent stream #1 to 127.0.0.1:8042
log event: verbose -- Received frame #1 from 127.0.0.1:8042
log event: warning -- No local info provided
log event: verbose -- Sending stream #0
log event: verbose -- Done receiving frame #1
log event: verbose -- Sent stream #0 to 127.0.0.1:8042
log event: verbose -- Received frame #0 from 127.0.0.1:8042
log event: info -- Peers info retrieved
log event: error -- Tokenizer could not be determined
log event: info -- Retrieving keyspaces metadata
log event: verbose -- Sending stream #1
log event: verbose -- Done receiving frame #0
log event: verbose -- Sent stream #1 to 127.0.0.1:8042
log event: verbose -- Received frame #1 from 127.0.0.1:8042
log event: verbose -- Sending stream #0
log event: verbose -- Done receiving frame #1
log event: verbose -- Sent stream #0 to 127.0.0.1:8042
log event: verbose -- Received frame #0 from 127.0.0.1:8042
log event: info -- ControlConnection connected to 127.0.0.1:8042 and is up to date
我试过玩防火墙并打开应用程序,但没有帮助。有时它确实随机工作,但我还没有弄清楚为什么。 我有一个 mac OS X El Capitan
【问题讨论】:
-
貌似和网络无关,和节点配置有关:驱动从
system.local表中获取数据中心的信息,确保数据填写在scassandra中。 -
我应该在 scassandra 中存根这张表吗?
标签: node.js macos cassandra datastax datastax-enterprise