【问题标题】:Getting Cassandra to listen on 9042 properly让 Cassandra 正确收听 9042
【发布时间】:2017-05-13 09:22:10
【问题描述】:

我只是想让一个 Cassandra 节点运行并从远程服务器连接。

lsof -i :9042
COMMAND   PID      USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    22089 cassandra  137u  IPv4  80564      0t0  TCP cassansra.sucks.com:9042 (LISTEN)

在 Cassandra 服务器上:

sudo nodetool status 
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens       Owns (effective)  Host ID                               Rack
UN  xxx.xxx.xxx.xxx  202.28 KiB  256          100.0%            6e485a3c-7e0f-452c-8545-77380f21daa0  rack1

我想要的是 9042 监听一个 IP 地址。我在 cassandra.yaml 文件中有以下内容:

  rpc_address: xxx.xxx.xxx.xxx

我正在使用 Cassandra 3.x。

【问题讨论】:

  • 您如何尝试连接?您应该能够连接到您指定为rpc_address 的 IP 地址上的端口 9042。如果 Cassandra 绑定到主机名,则意味着未设置 rpc_address。您可能看错了cassandra.yaml,或者您没有保存对文件的更改,或者犯了其他错误?

标签: cassandra


【解决方案1】:

nodetool status 工作正常。

请检查 cassandra 守护进程是否正在侦听本机传输端口(默认值:9042)。

如果 cassandra 守护进程监听本机传输端口,请执行以下命令:

nodetool enablebinary

【讨论】:

    【解决方案2】:

    -e CASSANDRA_RPC_ADDRESS-e CASSANDRA_START_RPC=true - 如果我们设置这两个选项,它将能够连接外部机器的 9042 端口。

    你能打印/var/log/cassandra/system.log吗,所以我们应该能够看到为什么会输出错误。你在使用 Docker 吗?如果是这样,请使用以下详细信息:https://hub.docker.com/_/cassandra/。即使不是 Docker,选项也一样。

    【讨论】:

    • START_RPC 在 9160 上启用 thrift 协议,与通过 9042 上的原生二进制协议连接无关。
    猜你喜欢
    • 2016-06-26
    • 1970-01-01
    • 2015-08-25
    • 2014-09-08
    • 2017-03-19
    • 2019-01-24
    • 2016-08-03
    • 2017-05-06
    • 2014-02-08
    相关资源
    最近更新 更多