【问题标题】:Cant connect to scassandra (stubbed cassandra) using datastax-driver无法使用 datastax-driver 连接到 cassandra(存根 cassandra)
【发布时间】: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


【解决方案1】:

对我有帮助的解决方案: 我需要将 system.local 表初始化为 prime-query-single

{
        query: 'prime-query-single',
        header: {'Content-Type': 'application/json'},
        body: {
            "when": {
                "query": "SELECT * FROM system.local WHERE key='local'"
            },
            "then": {
                "rows": [
                    {
                        "cluster_name": "custom cluster name",
                        "partitioner": "org.apache.cassandra.dht.Murmur3Partitioner",
                        "data_center": "dc1",
                        "rack": "rc1",
                        "tokens": [
                            "1743244960790844724"
                        ],
                        "release_version": "2.0.1"
                    }
                ],
                "result": "success",
                "column_types": {
                    "tokens": "set<text>"
                }
            }
        }
    }

【讨论】:

    猜你喜欢
    • 2018-12-16
    • 2017-12-26
    • 2015-05-21
    • 2014-07-28
    • 2018-04-16
    • 2016-07-31
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    相关资源
    最近更新 更多